Thema: Delphi Threads und IdHTTP

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Threads und IdHTTP

  Alt 14. Aug 2011, 21:30
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat