Also erstmal hatte ich vergessen zu erwähnen dass es sich beim Thread um einen Thread der Klasse TThread handelt und ich Lazarus/Freepascal verwende.
Des Weiteren habe ich mir die Frage wohl schon selbst beantworten können.
Und zwar ist es denke ich eleganter, Objekte in einem eigenen constructor zu übergeben. zweitens braucht mein Thread ja nicht dessen Parent, sondern die Stringlist des Parent. Drittens eignet sich dafür ein Pointer
Delphi-Quellcode:
type
TFileWalker = class(TThread)
protected
procedure Execute; override;
private
Ffilepath: string;
FStringListPointer :^Tstringlist;
Freceiverformhandle:HWND;
public
constructor Create(StringListpointer:Pointer:Pointer; filepath:String; receiverformhandle: HWND);
end;
constructor TFileExplorer.Create(StringListpointer:Pointer; filepath:String; receiverformhandle: HWND);
begin
inherited create(true);
FStringListPointer := StringListpointer;
Ffilepath := filepath;
Freceiverformhandle := receiverformhandle;
self.Start;
end;