en fait je pensais avoir vire la declaration de Form2 dans la section interface.... (ce que je fais habituellement)
la declaration en variable membre n'etait effectivement pas necessaire, j'aurais tres bien pu la declarer en variable locale a ma fonction... il me semble que la question posee dans le forum etait justement de disposer de plusieurs instances, mais n'ayant pas relu la question, je peux me gourer :o)
Pourquoi créer un membre privé FForm2 : TForm2 dans la classe TForm1 ?
Comme Unit1 declare Unit2 dans sa clause Uses, tu peux directement utiliser la variable d'instance Form2 déclarée dans la partie Interface de Unit2.
Donc dans ta méthode Button1Click, tu peux directement écrire :
Form2 := TForm2.Create(Application);
Form2.Show;
Et, si tu fais appel à des affichages en mode non modal, inutile de créer plusieurs instances de la même fiche :
If not Assigned(Form2) then
Form2 := TForm2.Create(Application);
Form2.Show;
Automatiquement, si la fiche est déjà présente à l'écran, elle deviendra active. Sinon, elle sera créée et activée.
23 févr. 2008 à 19:07
26 janv. 2005 à 10:56
24 janv. 2003 à 22:22
la declaration en variable membre n'etait effectivement pas necessaire, j'aurais tres bien pu la declarer en variable locale a ma fonction... il me semble que la question posee dans le forum etait justement de disposer de plusieurs instances, mais n'ayant pas relu la question, je peux me gourer :o)
24 janv. 2003 à 20:17
Comme Unit1 declare Unit2 dans sa clause Uses, tu peux directement utiliser la variable d'instance Form2 déclarée dans la partie Interface de Unit2.
Donc dans ta méthode Button1Click, tu peux directement écrire :
Form2 := TForm2.Create(Application);
Form2.Show;
Et, si tu fais appel à des affichages en mode non modal, inutile de créer plusieurs instances de la même fiche :
If not Assigned(Form2) then
Form2 := TForm2.Create(Application);
Form2.Show;
Automatiquement, si la fiche est déjà présente à l'écran, elle deviendra active. Sinon, elle sera créée et activée.