Bonjour, je dois gérer, avec les mêmes fonctions et procedures, plusieurs ports série dans une même application.
J'utilise TComPort que je dépose ex. 3 fois sur une forme.
Donc il est déclaré:
ComPort1: TComPort;
ComPort2: TComPort;
ComPort3: TComPort;
Dans le code, j'ai des procédures tel:
Cette procédure est spécifique à TComPort1.
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 procedure TfmMain.ComPort1RxChar(Sender: TObject; Count: Integer); var Chaine: String; Prem, Dern: Integer; begin ComPort1.ReadStr(Chaine, Count); EditStrRcv.Text := Chaine; Application.ProcessMessages; // Le controleur a répondu donc on décrémente Dec(nRepond); // // dCommId contient un code de commande valide ou pas si = 0 if dCommId = 1 then // demande de data pour la BD %/ begin if (Copy(Chaine, 1, 1) = '%') and (Copy(Chaine, Length(Chaine) - 2, 1) = '/') then begin StrRcv := Chaine; end else begin StrRcv := ''; end; end; end;
Voilà mon point, est-il possible d'utiliser une "macro" ou une supervariable qui contiendrait TComPort1|2|3 comme valeur ou pointeur, devrais-je dire ?
afin de m'éviter de dupliquer cette procédure pour chaque TComPort.
J'espère que je suis clair. Merci
Partager