bonjour, tout est dans le titre en fait presque, j'ai plusieurs form dans mon projet ,je voudrais avoir des variables globales au projet meme pour pouvoir les utiliser dans différentes fom, comment dois je les déclarer ?
merci
bonjour, tout est dans le titre en fait presque, j'ai plusieurs form dans mon projet ,je voudrais avoir des variables globales au projet meme pour pouvoir les utiliser dans différentes fom, comment dois je les déclarer ?
merci
Salut
Remarque (J'espère ne pas te l'apprendre): l'utilisation inconsidérée de variables globales n'est pas conseillée d'une manière générale, c'est une bonne façon pour produire un logiciel immaintenable.
En effet, le contrôle de la valeur d'une variable globale peut devenir rapidement difficile, des maintenances en grand nombre ne font en général qu'empirer la situation surtout si le turn-over dans l'équipe est important, il est tellement facile et tentant d'employer une variable déjà déclarée ! mais cela eput entraîner des régressions parfois très inattendue et pas toujours au meilleur moment (mise en prod...).
La transmission de valeurs globales entre des fiches ne nécessite pas l'utilisation de variables globales, on peut propager ces valeurs entre des fiches via des propriétés dédiées.
Sinon, une technique courante (malheureusement) pour mettre en oeuvre des variables globales consiste à créer une unité spécifique (UGlobal.pas par exemple) qui contiendra les déclarations de ces variables dans le paragraphe Interface de l'unité. En ajoutant le nom de l'unité dans la clauses uses des unités utilisatrices, les variables globales deviennent alors toute disponibles.
Mais je ne préconise cette méthode.
cdlt
e-ric
tout d'abord merci de ta réponse,pr les variables globales je suis au courant mais travaillant seul et ne connaissant pas les propriétés dédiées je me suis tourné vers cette solution, quelles sont donc ces propriétés dédiées et comment les utiliser ?
merci
Salut,
Si je ne m'abuse, ce qu'il te propose c'est, dans ton Unit de ta form il existe, dans la déclaration de la class de ta forme, deux sections nommés Private et Public.
En terme d'accessibilité, tout ce qui se trouve dans Private ne pourra être accessible que par l'unité elle-même. A l'inverse tout se qui se trouve dans Public sera accessible par tout composant créer comme la classe.
Exemple :
Si tu déclares une variable MaValeur dans Private et que depuis une autre fiche tu fasses : MaForm.MaValeur; ton programme plantera (en fait il ne compilera même pas). Par contre ceci marchera si tu déclares ta variable dans Public.
Ensuite il est plutot coutume d'interdire l'accès directe à des variables comme ça (enfin je crois ) c'est pourquoi il est intéressant d'utilisé les propriétés. Je te donne un exemple, je t'explique et j'en arrête là avec mon intervention :
Ainsi dans ton unité tu modifies ta variable comme tu le veux, et pour récupérer sa valeur depuis l'extérieur tu n'as plus qu'à faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 MaForm = Class(TForm) //tous tes composants Private fMaVariable : MonType; Public Property MaVariable : MonType Read fMaVariable; End; ...
LeNomDeTaForm.MaVariable;
Ai-je été assez clair ?
Et pour eric est-ce bien ça ?
Bonne chance et n'hésite pas à revenir si besoin de lumière
merci beaucoup ca fonctionne
Mais de rienEnvoyé par Mihalis
Juste pense à appuyer sur le bouton Résolu pour rester dans les normes
Bon dev'
Partager