Zitat von
Luckie:
Guck dir mein Threading Tutorial an. In den Demos zeige ich, wie man Parameter an Threads übergibt.
Bitte nicht
CreateThread nutzen. Und die Thread-Funktion nicht als stdcall deklarieren.
Delphi-Quellcode:
type
TThreadParams = record
MyInt: Integer;
MyString: String[255];
end;
PThreadparams = ^TThreadParams;
[..]
function ThreadFunc(p: Pointer): Integer;
var
i: Integer;
s: String;
begin
i := PThreadParams(p)^.MyInt;
s := PThreadParams(p)^.MyString;
[..]
FreeMem(p, sizeof(TThreadParams));
end;
[..]
procedure Foobar;
var
ThreadParams: PThreadParams
begin
GetMem(ThreadParams, sizeof(TThreadParams));
ThreadParams.MyInt := 5;
ThreadParams.MyString := 'Luckie ist doof.';
hThread := BeginThread(0, nil, @ThreadFunc, ThreadParams, ... );
if hThread <> 0 then
begin
...;
CloseThread(hThrerad);
end;
Mal so auf die Schnelle ohne Compiler in die Tasten gehauen.
also dein tutorial kenn ich. mit dem hab ich mir das ja angeeignet. und letztenendes ist das was ich mache doch genau das gleiche wie du schriebst oder
ausser dass es sich bei mir nicht um eine globale variable handelt... muss es das denn?