Witam.
mam taki kod
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
IdHTTP1: TIdHTTP;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
procedure IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
private
public
end;
Ttest = class(TThread)
private
protected
procedure Execute; override;
end;
var
Form1: TForm1;
test : Ttest;
Start, Finish, LastDownload, RozmiarPliku: Integer;
implementation
{$R *.dfm}
procedure Tform1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
var
Transfer: Currency;
begin
Finish:= GetTickCount;
Transfer:= ((AWorkCount - LastDownload) / 1024) / ((Finish - Start) / 1000);
Form1.StatusBar1.Panels[1].Text:= CurrToStrF(Transfer, ffFixed, 2) + ' kb/s';
Start:= GetTickCount;
LastDownload:= AWorkCount;
end;
procedure Tform1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
Start:=0;
Finish:=0;
LastDownload:=0;
end;
procedure Ttest.Execute;
var
ms:tstringstream;
sd:tmemorystream;
szuk:string;
ds:tstringlist;
begin
FreeOnTerminate := True;
sd:=tmemorystream.Create;
ds:=tstringlist.Create;
ms:=tstringstream.Create('');
szuk:='http://static.gadu-gadu.pl/gg77.exe';
ms.Position:=0;
ds.LoadFromStream(ms);
Form1.idhttp1.get(szuk,sd);
sd.SaveToFile('c:\aaa.exe');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
test.Resume;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
test.Suspend;
idhttp1.Disconnect;
end;
initialization
test := Ttest.Create(True);
end.
ściąganie jest zrobione za pomocą wątku.
ale nie pokazuje postępu ściągania w progressbar.
czy wie ktoś może czemu?
a przy okazji może ktoś wie jak za pomocą INDY zrobić dokończenie ściągania pliku??
nie chce internetopen itp. ponieważ tam nie mogę użyć posta.
z góry dziękuje za odp