Hallo zusammen,
es geht darum Events von Komponenten in einem Thread aufzurufen.
Also der Thread erstellt sich (beispielsweise) einen Timer in Create und setzt das Event auf eine eigene Prozedur.
Hier die wichtigsten Zeilen:
Delphi-Quellcode:
type TMeinthread = class(TThread)
private
Timer : TTimer;
procedure TimerEvent(Sender : TObject);
public
constructor Create(CreateSuspended : Boolean); override;
procedure Execute; override;
end;
implementation
constructor TMeinthread.Create(CreateSuspended : Boolean);
begin
inherited;
Timer:=TTimer.Create(nil);
Timer.OnTimer=TimerEvent;
end;
procedure TMeinthread.Execute;
begin
while not Terminated do
Sleep(100); // irgendwas eben
end;
procedure TMeinthread.TimerEvent(Sender : TObject);
begin
Sleep(500); // noch irgendwas
end;
Wie ich natürlich bemerken musste läuft das TimerEvent innerhalb meines Hauptthreads ab und blockiert mein Formular.
Was kann ich dagegen tun? Das ganze ist nur Beispielhaft, ich stehe häufiger vor dieser Art von Problem.
Grüße!