Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: nonVCL Thread Klasse: Probleme mit der Deklaration

  Alt 7. Mär 2007, 22:07
1. Der Parameter CREATE_SUSPENDED steht an der falschen Stelle.
2. Die Thread-Prozedur selbst musst du klassenlos machen.
3. Du solltest "Self" als "lpParameter" hinter der Thread-Startadresse übergeben, denn
4. dann erhält die Thread-Prozedur das Objekt als Parameter und kann damit "Execute" aufrufen.

// Nachtrag

Etwa so:

Delphi-Quellcode:
function ThreadCallback(Data: Pointer): LongInt; stdcall;
begin
  Result := TThread(Data).Execute;
end;

constructor TThread.Create(CreateSuspended: boolean);
const
  SuspOrNot: array [Boolean] of DWORD = ( 0, CREATE_SUSPENDED );
begin
  FThreadHandle := CreateThread(nil, 0, @ThreadCallback, Self, SuspOrNot[CreateSuspended], ThreadID);
end;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat