Ich bin in dem Bereich natürlich nicht der Fachmann, aber ein paar Ansatzpunkte, die Dir vielleicht helfen können:
-dein abgeleiteter Thread kann ja auch die Labels als Objekte haben, die "Verweise" auf die Labels des Hauptformulars sind. Mit denen kannst du dann intern arbeiten.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
t: TMyThread;
begin
t := TMyThread.Create(True);
t.Label1 := Form1.Label1;
t.Label2 := Form1.Label2;
// etc.
end;
procedure TMyThread.Sync;
begin
Label1.Caption := 'Bla' + IrgendEineStringVaribaleAusDiesemThread;
// etc.
end;
procedure TMyThread.Execute;
begin
// IrgendWas
IrgendEineStringVaribaleAusDiesemThread := 'Foo';
Synchronize(Sync);
// IrgendWas
end;
Beachte dass Änderungen an visuellen Komponenten durch Threads generell nur durch den Aufrufen von einer Prozedur/Funktion mit dem Befehl "Synchronize" durchgeführt werden durfen. (Sonst Absturz!).
-deine Aufgabenliste kann man eventuell als Array of TProcedure machen und diese dann auch so direkt wieder aufrufen:
Delphi-Quellcode:
var // Global
arrProc: array of TProcedure;
procedure Jobliste_Abarbeiten;
begin
for i := low(arrProc) to high(arrProc) do begin
if assigned(arrProc[i]) then begin
arrProc[i];
end;
end;
^-- ungetestet, keine Ahnung ob das so direkt geht...