Donc à partir de là, je peux accéder au contenu de mon objet aTest, c'est à dire aTest.Var1 ou aTest.Var2. Ma question est donc, est-ce que je peux y accéder à partir de n'importe quel endroit de mon programme ? A mon avis non, car l'instance se trouve dans la procédure btTestClick.
Dans ce cas, je voudrai savoir comment utiliser les classes dans le cadre d'un programme qui, par exemple, ouvre un fichier, charge des données à partir de celui-ci et qu'ailleur dans le programme on utilise ces données chargées...
Moi jusqu'au jour d'aujourd'hui j'utilise des variables globales dans lesquelles je met tout ce que je veux et que je peux récupérer à tout moment n'importe où dans le programme.
C'est cet aspect que j'arrive pas à comprendre avec les classes... :??:
A moins que la solution se trouve dans la déclaration d'un objet de ma classe dans les variables globales du programme ??
Beaucoup de questions pour lesquelles j'attends une réponse de votre part.
Merci à tous.
Inekman.
Si ici c'est la Terre alors j'imagine même pas l'Enfer.
Loulibier
Messages postés309Date d'inscriptionjeudi 6 juin 2002StatutMembreDernière intervention24 septembre 20082 4 oct. 2004 à 20:44
salut Inekman,
tout d'abord si tu Free la class aTest juste après l'avoir créé, cela ne fonctionnera pas du tout ;) . Mais je suppose que cela n'est qu'un exemple...
afin que tu puisses utiliser la classe TMaClasse dans toute ton unité, il faut que tu déclares une variable de ta classe dans les private. si tu la déclare en public elle seras accessible par toutes les unités liées à celle-ci.
exemple :
private
aTest: TMaClasse;
end;
procedure TForm1.Create(Sender : TObject);
begin
aTest := TMaClasse.Create;
end;
procedure TForm1.Destroy;
begin
aTest.Free;
end;
procedure TfrmTest.btTestClick(Sender: TObject);
begin
Showmessage(aTest.Var1);
end;
Inekman
Messages postés291Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention30 juin 2006 4 oct. 2004 à 20:52
Impeccable Olivier :-D
Par contre, moi j'ai souvent lu sur divers site qu'utiliser des variables déclarées tout en haut de l'unit (globales ?) c'est caca... Alors vu que j'osais pas faire un truc pas bien j'ai déclaré la variable dans l'évènement du bouton mais je me suis confronté à la limite de la portée.
Loulibier
Messages postés309Date d'inscriptionjeudi 6 juin 2002StatutMembreDernière intervention24 septembre 20082 4 oct. 2004 à 20:58
A quoi servirait donc le private, public, published, protected, ... ??
si l'on ne peut faire aucune déclaration.
Il est vrai qu'il est conseillé de faire des fonctions dans le public qui te permettront de modifier tes variables locales, au lieu d'attaquer ta variable en directe par d'autre classe.