Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Parameterübergabe an VCL-gestarteten Thread

  Alt 22. Mär 2017, 13:30
Delphi-Version: 5
Hallo Delphifreunde!

Zur Zeit beschäftige ich mich damit, einem VCL-gestarteten Thread Parameter zu übergeben. Dabei möchte ich endlich von den globalen Variablen wegkommen.

Luckies Tutorial kenne ich natürlich fast in- und auswendig, aber dort wird dieses Thema allgemein behandelt, nicht auf VCL-gestartete Threads bezogen (sofern ich nicht doch etwas übersah). Auch meine Suche in diesem Forum brachte mich erstmal nicht weiter.

Also, ich dachte es mir so:

Delphi-Quellcode:
type
TestThread=class(TThread)
  private
    l, r: word;
    id: THandle;
    asc: boolean;
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended, asc_input: Boolean; links, rechts: word; inputID: THandle);//kein override möglich, da statisch
end;


constructor TestThread.Create(CreateSuspended, asc_input: Boolean; links, rechts: word; inputID: THandle);
begin
inherited create(CreateSuspended);
l := links;
r := rechts;
ID := inputID;
asc := asc_input
end;

//...und weitere Threadsfunktionalität, z.B. die Execute-Methode
Das wird klaglos übersetzt und ergibt auch zur Laufzeit keine wahrnehmbaren Programmfehler, dennoch entspricht das Ergebnis nicht meiner Vorstellung. Deshalb kam mir der Verdacht der ungeeigneten Parameterübergabe. Ist es also möglich, auf diese Weise zusätzliche Parameter (also außer dem CreateSuspended) in den Thread einzuschleusen?
  Mit Zitat antworten Zitat