Witam pisze program który będzie pobierał pliki z internetu i próbuje zrobić aby można było pobierać ich kilka jednocześnie. Napisałem coś takiego:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, HTTPGet, Gauges;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure KlikPrzycisku(Sender: TObject);
procedure Progress(Sender: TObject; TotalSize,Readed: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i: Byte = 0;
y: Integer = 8;
NumName: Byte;
TagHTTP: String;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
NewButton: TButton;
NewGauge: TGauge;
NewHTTPGet: THTTPGet;
begin
i := i + 1;
// Tworzenie przycisku pobierania
NewButton := TButton.Create(Self);
NewButton.Width:=75;
NewButton.Height:=25;
NewButton.Top := y;
NewButton.Left := 8;
NewButton.Name := 'Download'+IntToStr(i);
NewButton.Caption := 'Pobierz';
NewButton.Tag := i;
NewButton.Visible := True;
NewButton.Parent := Self;
NewButton.OnClick := KlikPrzycisku;
// Tworzenie paska postępu
NewGauge := TGauge.Create(Self);
NewGauge.Name := 'Gauge'+IntToStr(i);
NewGauge.Width:=250;
NewGauge.Height:=20;
NewGauge.Top := y;
NewGauge.Left := 91;
NewGauge.MinValue := 0;
NewGauge.Parent := Self;
NewGauge.Visible := True;
// Tworzenie komponentu HTTPGet
NewHTTPGet := THTTPGet.Create(Self);
NewHTTPGet.Name := 'HTTPGet'+IntToStr(i);
NewHTTPGet.URL := Edit1.Text;
NewHTTPGet.Tag := i;
NewHTTPGet.FileName := 'C:\Documents and Settings\Qbek\Pulpit\' + Edit2.Text;
NewHTTPGet.OnProgress := Progress;
y := y + 30;
end;
procedure TForm1.KlikPrzycisku(Sender: TObject);
begin
NumName := TButton(Sender).Tag;
THTTPGet(FindComponent('HTTPGet' + IntToStr(NumName))).GetFile;
end;
procedure TForm1.Progress(Sender: TObject; TotalSize, Readed: Integer);
begin
NumName := TButton(Sender).Tag;
TGauge(FindComponent('Gauge'+IntToStr(NumName))).MaxValue := TotalSize;
TGauge(FindComponent('Gauge'+IntToStr(NumName))).Progress := Readed;
end;
end.
Ale gdy pobieram dwa lub więcej plików to wtedy postęp pobierania tych plików jest wyświetlany na przemian na jednym TGauge :/