Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Indy Thread Status zuordnen ?

  Alt 19. Mär 2010, 13:41
Hi,

ich habe einen Thread für die Idhttp erstellt.

Delphi-Quellcode:
unit Unit3;

interface

uses
  Classes, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
  IdhttpThread = class(TThread)
  private
{ Private declarations }
    THIdHTTP: TIdHTTP;
  public
{ Public declarations }
    constructor Create(CreateSuspended: Boolean);
    destructor Destroy; override;

    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
    procedure IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);

    procedure Execute; override;

  end;

implementation

constructor IdhttpThread.Create(CreateSuspended: Boolean);
begin
  inherited;
  THIdHTTP := TIdHTTP.Create(nil);
end;

destructor IdhttpThread.Destroy;
begin
  THIdHTTP.Free;
  inherited;
end;

procedure IdhttpThread.Execute;
begin
  THIdHTTP.OnWork := IdHTTP1Work;
  THIdHTTP.OnWorkBegin := IdHTTP1WorkBegin;
  THIdHTTP.OnWorkEnd := IdHTTP1WorkEnd;

  THIdHTTP.Get('http://beispiel.de/Beispiel.exe');
end;

procedure IdhttpThread.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
begin
// Mach was
end;

procedure IdhttpThread.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
begin
// Mach was
end;

procedure IdhttpThread.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
// Mach was
end;

end.
Ich habe vorher noch nicht wirklich mit Threads gearbeitet, deswegen frage ich mich nun wie ich wenn ich den Thread dreimal hintereinander ausführe und somit 3 Downloads parallel laufen an die 3 verschiedenen IdHTTP1Work, IdHTTP1WorkBegin und IdHTTP1WorkEnd kommen kann um die den Fortschritt des jeweiligen Downloads anzeigen zu lassen.

Mfg Yannic
  Mit Zitat antworten Zitat