Question de programmation générale
Salut à tous,
Ma question est ici en rien un soucis de fonctionnement de mon appli ou quoi que ce soit, c'est juste moi qui me pose celle-ci dans un soucis de "logique de programmation".
Alors voila, admettons un projet avec une form principale de nom fPrinc. Celle ci contenant de jolies boutons et tout le tralala ... Ajoutons à se projet une Unité (donc juste du code).
Dans les Uses de fPrinc (dans celui de l'implementation) j'ajoute le nom de mon unité (et par soucis d'utilisation de type enregistrement, dans le uses à l'unité j'ajoute Princ, je modifierai cette structure après ...).
En ce qui concerne le code, dans Princ j'ai un appel de fonction de l'unité supplémentaire :
->
Code:
Unevariable:=MaFonction(variable1,variable2);
Donc dans mon unité j'ai quelque part :
Code:
1 2 3 4
| Function Mafonction(var1 : type; var2 : type):type;
Begin
blablabla
End; |
Ma question est la suivante. Dans la fonction ci-dessus, je veux me servir de la proprité d'un checkbox de ma form fPrinc. Deux possibilités se présentent :
1) Etant donné que mon unit contient (dans son uses) Princ, je peux faire directement :
Code:
1 2 3 4 5 6
|
Function Mafonction(var1:type;var2:type):type;
var trouve : boolean;
Begin
Trouver:=fPrinc.MonCheckBox.Checked;
End; |
2) Une autre possibilité, qui je pense est en fait la plus mobile en cas de changement de structure du programme serait de faire passer le nom de ma form en paramètre et me servir alors de se paramètre dans la fonction :
Code:
1 2 3 4 5 6
|
Function Mafonction(var1:type;var2:type;Form : TForm):type;
var trouve : boolean;
Begin
Trouver:=Form.MonCheckBox.Checked;
End; |
Je pense que c'est la seconde solution qui est le plus mieux :lol: mais n'en étant pas persuadé, j'aimerais l'avis de personne un peu plus experte en la matière, je sais bien c'est un détail sur quoi je chipotte, mais je pense qu'il vaut mieux que je sois pointilleux dès le début pour m'éviter de devoir modifier pleins de mauvaises habitudes plus tard ...
J'espère avoir été assez clair, sinon faites signe je réexpliquerai autrement ...
Merci de m'avoir lu et de me répondre
A plus ;)