Ich habe das Ganze jetzt mal so versucht: (klappt leider immernoch nichtSocke hat geschrieben:Nein. Synchronize() hat allein den Zweck, eine Methode im Main-Thread auszuführen. Die Daten kannst du als Eigenschaften deines TThread-Objektes Verfügbar machen.mark332 hat geschrieben:hmm... okay, das hat schonmal ein bisschen geholfen, jetzt würde mich nurnoch interessieren, ob es möglich ist mit Syncronize(@Bla) möglich ist, der Prozedur/Funktion, die aufgerufen wird, paramater mitzugeben.

Code: Alles auswählen
procedure DownloadThread.ThreadFinish;
begin
Finish := true
end;
procedure DownloadThread.ShowDLStat();
begin
Form1.Memo_step.Lines.Add(LString)
end;
procedure DownloadThread.setDLCaption();
begin
Form1.StaticText_download.caption:=LString;
end;
procedure DownloadThread.setProgressBar();
begin
Form1.ProgressBar_download.position:=LInt;
end;
procedure DownloadThread.Execute;
var
i: Integer;
MaxCurSteps: Integer;
Step: Integer;
CurStep: Integer;
captions: String;
failes: Boolean;
str: String;
begin
for i:=0 to (MaxCurSteps-1) do
begin
LString := '';
Synchronize(@ShowDLStat);
if (i = 4) or (i = 6) then
begin
LString:='Downloading '+recs[i]+' || This will take a while! ||';
Synchronize(@ShowDLStat);
end
else
begin
LString:='Downloading '+recs[i];
Synchronize(@ShowDLStat);
end;
CurStep:=i+1;
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps)+')';
LString:= captions;
Synchronize(@setDLCaption);
LInt := CurStep;
Synchronize(@setProgressBar);
FTPDownload('source/'+recs[i],InstalDir+'\'+dest[i]);
LString:='Extracting '+dest[i];
Synchronize(@ShowDLStat);
CurStep:=i+1;
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps)+')';
end;
Synchronize(@ThreadFinish)
end;
MfG mark332