Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Indy Thread Status zuordnen ?

  Alt 19. Mär 2010, 20:28
Hi Yanni,

ich möchte jetzt kein komplettes Bsp. programmieren dazu fehlt mir im Moment die Zeit, außerdem gibt es hier noch genug andere die das auch hinbekommen.

Aber hier mal ein Ansatz für Dich:
Ich gehe mal davon aus das Du eine Progressbar aktualisieren willst, während des Downloads.

Deshalb must Du Deine ThreadKlasse um eine Eingenschaft TargetProgressBar : TProgressbar erweitern.
Außerdem eine private Variable in Thread iProgress : integer;
Und ganz wichtige eine private Procedure UpdateProgressbar;

Unrwe dann beim erzeugen der Threads:

Delphi-Quellcode:
Var
  httpthd1 : IdhttpThread ;
  httpThd2 : IdhttpThread ;
  httpThd3 : IdhttpThread ;
begin
  // ....
  httpThd1 := IdHttpThread.Create(true);
  httpThd1.TargetProgressbar := MainForm.Progressbar1;
  httpThd2 := IdHttpThread.Create(true);
  httpThd2.TargetProgressbar := MainForm.Progressbar2;
  httpThd3 := IdHttpThread.Create(true);
  httpThd3.TargetProgressbar := MainForm.Progressbar3;
  // ... Threads starten
  httpThd1.resume; // ab hier läuft Thead 1
  httpThd2.resume; // ab hier Thread 2
  HttpThd3.resume; // ...
Im OnBegin, OnWork und OnWorkEnd setzt Du die Variable iProgress und dann
syncronisierst du UpdateProgress mit :
  syncronize(UpdateProgress); Die procedure UpdateProgress sieht dann ungefähr so aus:
Delphi-Quellcode:
procedure idhttpThread.updateProgress;
begin
  if Assigned(TargetProgressbar) then
    TargetProgressbar.position := iProgress;
end;
Das muss jetzt aber reichen,

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat