Hallo,
zu erstens: Richtig, du musst auch Events über Synchronize aufrufen, wenn sie außerhalb des Threads verarbeitet werden,
da ein Event nichts anderes ist, als ein Methodenaufruf.
zu zweitens: Wenn du die StringList erstellst, bevor der Thread startet (also CreateSuspended = true) und der Thread dann die StringList wieder frei gibt,
kein Problem.
Das kannst du dann aber auch so lösen:
Delphi-Quellcode:
TTestThread = class(TThread)
protected
public
constructor Create; virtual;
destructor Destroy; override;
property SL: TStringList read FSL;
end;
constructor TTestThread.Create;
begin
Inherited Create(true);
FSL := TStringList.Create;
end;
destructor TTestThread.Destroy;
begin
FSL.Free;
Inherited;
end;
// und so die Benutzung
procedure TForm1.erstelleListe();
var pThread: TTestThread;
begin
pThread := TTestThread.Create;
pThread.FreeOnTerminate := true;
pThread.SL.Add('Test');
pThread.SL.Add('1234');
pThread.Resume;
end;
Ciao Chris