Bonjours,
J'ai actuellement deux applications placé sur deux PC différents, une sur le premier PC qui récupère une donnée à partir d'un lecteur de code barre (COM6) et qui renvoi cette donnée sur deux autres ports (COM4/5) et l'autre application placée sur le second PC qui récupère les données recu sur les deux ports (COM1/2). Les Ports COM4/5(PC1) et COM1/2(PC2) sont relié avec un câble RS232.
J'utilise donc le composant Comport pour gérer mes transferts.
Mon code :
Mon problème est que j’accède bien a ma procédure TForm1.ComPort1RxChar mais pas aux deux autres ComPortRxChar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var chaine : string; Begin //Passe la variable AfficheCOM1 à vrai pour permettre l'affichage AfficheCOM := True; //Lecture du port comport1 pour la reception de donnée ComPort1.ReadStr(Chaine,Count); //Clear du mémo pour éviter la saturation en donnée Memo1.Lines.clear; //Affiche la donnée reçu en COM d'entrée if AfficheCOM then Memo1.Lines.Text := Memo1.Lines.Text +Comport1.port+', reçu : '+Chaine+#13#10; //Envoi/Ecris la donnée sur un COM de sortie ComPort2.WriteStr(Chaine+#13#10); //Envoi/Ecris la donnée sur un COM de sortie ComPort3.WriteStr(Chaine+#13#10); //Affiche la donnée reçu en COM de sortie if AfficheCOM then Memo1.Lines.Text := Memo1.Lines.Text +Comport2.port+', envoyé : '+Chaine+#13#10; //Affiche la donnée reçu en COM de sortie if AfficheCOM then Memo1.Lines.Text := Memo1.Lines.Text +Comport3.port+', envoyé : '+Chaine+#13#10; end; procedure TForm1.ComPort2RxChar(Sender: TObject; Count: Integer); Var Chaine:String; begin //Lis la donnée présente sur le Port comport2 ComPort2.ReadStr(Chaine,Count); //Ecris dans le memo, la donnée présente sur le Port comport2 Memo1.Lines.Text := Memo1.Lines.Text +Comport2.port+', reçu : '+Chaine; end; procedure TForm1.ComPort3RxChar(Sender: TObject; Count: Integer); Var Chaine:String; begin //Lis la donnée présente sur le Port comport3 ComPort3.ReadStr(Chaine,Count); //Ecris dans le memo, la donnée présente sur le Port comport3 Memo1.Lines.Text := Memo1.Lines.Text +Comport3.port+', reçu : '+Chaine; end;
Je réceptionne bien ma donnée sur mon autres PC donc mes comport1/2/3 sont actif et fonctionnels.
Auriez vous une idée d'où viendrait le fait que c'est procédure ne s'active pas ?
Partager