Bonjour,
Comment tester qu'une FORM a été déjà créer dans une application?
Merci d'avance pour vos réponses.
Bonjour,
Comment tester qu'une FORM a été déjà créer dans une application?
Merci d'avance pour vos réponses.
Bonjour et bienvenue sur Developpez.com
Merci de bien vouloir lire les règles du forum ainsi que l'aide aux nouveaux.
Sans apporter un peu plus de précisions, et notamment la façon dont ta fiche est créée, on aura du mal à t'aider. Précise stp.
la nouvelle FORM est créée et affichée en cliquant sur un bouton d'une FORM principale, mais il y a un cas ou la nouvelle form est déjà créée donc on ne fait plus que l'afficher et c'est ce que je voulais connaitre comment tester que la nouvelle form a été déjà créée c'est à dire qu'on a déjà fait l'instruction: NouvelleForm:=TForm.Create(Self);
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if not Assigned(NouvelleForm) then NouvelleForm:=TForm2.Create(Self);
Par contre, faut détruire la fenêtre avec FreeAndNil !
Salut
Perso pour une form je préfère utiliser un Release suivi d'un nil.
@+ Claudius
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3MaForm.Release; MaForm := nil;
Le Free c'est après du Modal
Le Release c'est dans un Gestionnaire d'Event (genre OnClick) pour éviter une libération d'un objet en cours d'utilisation (Sender)
On peut aussi mettre caFree (ne fait ni plus ni moins qu'un release) comme action dans le OnClose, et si l'on gère un singleton, affecter lors du OnDestroy un nil ...
Si l'on n'utilise pas de singleton, et que l'on ne stocke pas la référence, il faut soit utiliser le Owner pour gérer la libération ...
L'Affectation à nil, est evidemment indispensable ...
il existe un autre moyen, si dans le "TForm.Create(...);", le ... est Application, via la propriété Components, on peut chercher la fenêtre ...
Idem, dans le cas de MDI Child où le Owner est la MainForm MDI ...
Merci pour vos réponses les gars ça marche!
a+ sur le forum!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager