Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionunit ThreadSegUnit; interface uses Windows, Classes, SysUtils; type TThreadSeg = class(TThread) private procedure CentralControl; public constructor Create(CreateSuspended:boolean); destructor Destroy; override; protected procedure Execute; override; end; implementation constructor TThreadSeg.Create(CreateSuspended:boolean); begin inherited Create(CreateSuspended); FreeOnTerminate:=false; Priority:=tpNormal; end; destructor TThreadSeg.Destroy; begin //déchargez la mémoire ici si vous avez créé des objets inherited; end; procedure TThreadSeg.CentralControl; begin //écrivez ici ce que doit faire votre thread à un instant T donné end; procedure TThreadSeg.Execute; begin repeat Sleep(500); //en millisecondes Synchronize(CentralControl); until Terminated; end; end.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ThreadSegUnit; type TForm1 = class(TForm) ButtonThread: TButton; procedure ButtonThreadClick(Sender: TObject); private { Déclarations privées } public ThreadSeg:TThreadSeg; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ButtonThreadClick(Sender: TObject); begin If Assigned(ThreadSeg) Then Begin ThreadSeg.Suspend; ThreadSeg.Free; End; ThreadSeg:=TThreadSeg.Create(true); ThreadSeg.Resume; end;