Ich verwende dazu Methodenaufrufe:
Delphi-Quellcode:
type
TMainProc = procedure (<Parameter>) of object;
type
TMain = Class(TForm)
...
procedure Aktualisiere(<Parameter>);
...
procedure StartThread;
end;
Type
TMeinThread = Class(TThread)
fMainProc :TMainProc;
procedure Execute;
constructor Create(MainProc:TMainProc);
end;
Constructor TMeinThread.Create;
begin
...
fMainProc:= MainProc;
...
end;
procedure TMeinThread.Execute;
begin
while not terminated do begin
if (<Zähler>) and (assigned(fMainProc)) then
synchronize ( begin fMainProc(<Parameter>)end;); // anonyme Methode
...
end;
procedure TMain.StartThread;
begin
TMeinThread.create(Aktualisiere);
...
end;
procedure TMain.Aktualisiere(<Parameter>);
begin
// dieser code wird aus dem Thread aufgerufen
...
end;
grüsse Mschmidt