7
votes

Comment obtenir une liste de toutes les formes ouvertes de mon logiciel?

Je veux demander à l'utilisateur de fermer tous les formulaires ouverts avant de terminer mon application.

Comment puis-je obtenir automatiquement une liste de formulaires ouverts?

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 var avec application application.createform .

Mes salutations.


0 commentaires

4 Réponses :


3
votes

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 ; Lorsque chaque formulaire est créé, la forme elle-même peut ajouter sa référence à ouvertforme 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.


0 commentaires

20
votes

1 commentaires

thx man, écran.formcount et écran.Forms résout mon problème!



0
votes

J'utilise xxx

pour les formulaires enfants.


1 commentaires

THX par réponse, mais je n'utilise pas MDI.



1
votes
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;

0 commentaires