Application figée quand boucle

Signaler
Messages postés
32
Date d'inscription
vendredi 5 avril 2002
Statut
Membre
Dernière intervention
23 octobre 2006
-
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
-
Salut, g lu qu'il suffisait de mettre
Aplication.ProcessMessages;
dans une boucle pour ne pas figer l appli, mais je n'arrive quand meme pas a la fermer tant que je suis pas sorti de la boucle ( sauf programm reset ).
et l appli semble vouloir rien savoir d'autre ( a part Minimize ou reduce)...
Merci d'avance !

Crogger -

3 réponses

Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Je sais pas du tout si ça peux marcher, mais peut-être qu'en créant un thread juste pour ta boucle, ça débloquerai le reste...

Tu peux toujours essayer !!

Bestiol.
Messages postés
26
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
14 mars 2003

Ta le choix, créer un Thread pour ton interface et un thread pour le traitement, ce qui est selon moi une solution très efficace pour tous les logiciels.

Ou bien
Application.ProcessMessages;
ca devrait passé, paste dont ton code voir...

rtfm
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
Il y a une solution plus simple que de créer un Thread supplémentaire.

Ajoute une action sur le OnCloseQuery de la
fenêtre pricpale de ton appli :
( La variable fin doit être globale )
Var Fin:Boolean;
procedure TForm1.FormCloseQuery(Sender:
TObject; var CanClose: Boolean);
begin
Fin:=True;
end;

Modifie ta boucle en suivant l'exemple suivant :
procedure TForm1.Button2Click(Sender: TObject);
begin
Fin:=False;
Repeat
...
...
// On gère les messages Windows
Application.ProcessMessages;
// On doit femer la fenêtre => on sort
If Fin Then Break;
Until False;
end;

--- Nono du Moulin ---