Bonjour,

J'ai une application delphi qui lance un thread de recherche de fenêtre; j'aimerai que lorsque le thread se termine (quand la recherche est terminée), que l'application se ferme. Or elle reste ouverte même après avoir executé Application.Terminate.

Je vous joins une partie du code que j'utilise:
Formulaire principal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
procedure Tfrm_principal.FormCreate(Sender: TObject);
begin
    unthread := Trecherche.Create(true);
    unthread.Priority := tpidle;
    unthread.FreeOnTerminate := True;    
    unthread.Suspended := false;
end;
 
procedure Tfrm_principal.quitter();
begin
  unthread.Terminate;
  Application.Terminate;
end;
Thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
procedure Trecherche.Execute;
var
  trouve : boolean;
begin
 
  //phase recherche
  trouve := false;
  while trouve = false do
  begin
    //recherche
    if ........ then
    begin
        trouve := true;
    end
    else        
    begin
        sleep(5000); //réessaye dans 5 secondes
    end;
  end;
  //action sur la fenêtre trouvée
  ...
 
  //quitte le programme 
  frm_principal.quitter();   
end;
end;
Comment faire pour que le programme se ferme bien?
Merci d'avance pour votre aide