Je veux demander à l'utilisateur de fermer tous les formulaires ouverts avant de terminer mon application. P>
Comment puis-je obtenir automatiquement une liste de formulaires ouverts? p>
J'utilise Delphi 2006 et n'utilisez pas la création automatique du formulaire, mais j'utilise le formulaire de formulaire Auto Créé le formulaire Mes salutations. P> var code> avec application
application.createform code>. p>
4 Réponses :
Une solution possible (j'utilise en C #) consiste à stocker chaque instance de formulaire ouverte dans une liste Var.
Par exemple, vous pouvez avoir une liste globale nommée ouvertforme em>; Lorsque chaque formulaire est créé, la forme elle-même peut ajouter sa référence à ouvertforme em> et retirez-la lors de la fermeture.
Lorsque l'utilisateur tente de fermer votre application, vous pouvez vérifier que le nombre de liste est supérieur à zéro et, si l'utilisateur veut vraiment fermer, vous fermez gracieusement toutes les instances de formulaire contenues dans des formes ouvertes avant de fermer l'application. P>
regarder écran.formcount code>
et écran.Forms code>
. P>
thx man, écran.formcount code> et
écran.Forms code> résout mon problème!
J'utilise pour les formulaires enfants. P> p>
THX par réponse, mais je n'utilise pas MDI.
procedure ShowAllForms; var i:integer; begin with Application do for i:=0 to componentcount-1 do if components[i] is TMyCustomForm //your form class here, or simply TForm then ShowMessage(components[i].Name); end;