Bonjour, je souhaite forcer mon programme à se fermer.
J'ai fait un bouton qui génère un évènement puisque celui-ci se trouve sur un autre cadre.
J'affecte l'évènement de mon bouton à une procedure qui va quitter le programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TFrmMainFrame.Button1Click(Sender: TObject); var monHandle : THandle; begin inherited; if Assigned(FOnFinProgramme) then FOnFinProgramme(Self); end;
J'ai écris le code suivant dans la procedure
Code : Sélectionner tout - Visualiser dans une fenêtre à part Frame_principale.onFinProgramme := finProgramme;
Le booléen termine est mis à True et permet de finir la boucle "repeat... until".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TFormPp.finProgramme(sender: TObject); begin if MessageDlg('Le test en cours va être annulé.',mtCustom,mbOkCancel,0) = 1 then begin termine := True; Application.Terminate; end; end;
Après avoir terminé la boucle, j'ai d'autres actions qui s'exécutent. Pour éviter qu'elles ne s'executent, j'ai mis le code suivant:
Le soucis c'est que la boucle est bien quitté, le code suivant n'est pas executé, comme je le souhaite, mais le programme ne se ferme pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if not termine then begin [...] end;
J'imagine que le problème vient du fait que le code "application.terminate" ne s'execute pas du fait qu'il reste des actions à finir.
Je ne sais pas trop comment m'y prendre.
J'espère avoir été clair. :p
Merci pour votre aide.
Partager