Wozu die ThreadProc? Und warum machst du nicht das, was dir Delphi sagt und fügst an der betreffenden Stelle den Thread Code ein mit: IdHTTP:Get(....);
Und das
Delphi-Quellcode:
procedure IdhttpThread.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
if Form1.updatestatus = 1 then
Form1.ProgressBar1.Position := AWorkCount;
if Form1.updatestatus = 2 then
Form1.ProgressBar2.Position := AWorkCount;
if Form1.updatestatus = 3 then
Form1.ProgressBar3.Position := AWorkCount;
end;
procedure IdhttpThread.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
if Form1.updatestatus = 1 then
Form1.ProgressBar1.Max := AWorkCountMax;
if Form1.updatestatus = 2 then
Form1.ProgressBar2.Max := AWorkCountMax;
if Form1.updatestatus = 3 then
Form1.ProgressBar3.Max := AWorkCountMax;
end;
Verursacht bei mir ganz großes Aua. Wenn man eine neue
Unit für einen Thread erstellt, dann wird einem doch im Kommentar gesagt, dass man nicht einfach so auf
VCL Elemente des Hauptthreads zugreifen darf, sondern diese Zugriffe mittels Synchronize synchronisiert werden müssen.
Außerdem wird dein IdHTTP Objekt nirgends frei gegeben, wenn ich das richtig sehe.
Und wenn keine Ahnung von etwas hat, dann liest man sich doch zumindest mal ein Tutorial durch oder? Und da sollten solche Sachen eigentlich drin stehen.