Bonjour à tous,
Désolé pour le titre pourri j'arrivais pas bien à expliquer succinctement mon besoin.
Je suis entrain de développer un protocole de dialogue sur liaison série entre mon PC et un équipement que j'ai développé
et j'aimerais écrire une librairie de fonctions "le plus élégamment" du monde, sans écrire 40 fois la même chose.
En gros pour faire simple, j'ai écris des fonctions bas niveau de dialogue, et maintenant j'aimerais écrire des fonctions par dessus du genre :
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 interface function Commande1():boolean; function Commande2():boolean; function Commande3():boolean; function Commande4(out parametre_sortie: String):boolean; function Commande5(out parametre_sortie: String):boolean; implementation function Commande1():boolean; begin result:= FonctionBasNiveau1('ma_syntax_commande_1'); end; function Commande2():boolean; begin result:= FonctionBasNiveau1('ma_syntax_commande_2'); end; function Commande3():boolean; begin result:= FonctionBasNiveau1('ma_syntax_commande_3'); end; function Commande4(out parametre_sortie: String):boolean; begin result:=FonctionBasNiveau2('ma_syntax_commande_4',parametre_sortie); end; function Commande5(out parametre_sortie: String):boolean; begin result:=FonctionBasNiveau2('ma_syntax_commande_5',parametre_sortie); end;
ça fonctionne mais je trouve ça totalement inélégant !!! J'aurais préféré un fichier qui ressemble à ça dans l'esprit (la syntax est fausse biensur)
avoir juste une partie définition et pas d'implémentation, puisque mes fonctions ne sont que des "alias" vers d'autres fonctions avec des paramètres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 interface function Commande1():boolean; alias FonctionBasNiveau1('ma_syntax_commande_1'); function Commande2():boolean; alias FonctionBasNiveau1('ma_syntax_commande_2'); function Commande3():boolean; alias FonctionBasNiveau1('ma_syntax_commande_3'); function Commande4(out parametre_sortie: String):boolean; alias FonctionBasNiveau2('ma_syntax_commande_4',parametre_sortie); function Commande5(out parametre_sortie: String):boolean; alias FonctionBasNiveau2('ma_syntax_commande_5',parametre_sortie);
fixes !!!
Je suis certain qu'il y a un moyen plus élégant que mon code exemple plus haut, mais j'ai passé plusieurs jours sur le net et j'ai rien trouvé.
Merci d'avance pour votre aide
Partager