用IdHTTP控件来下载一个比较大的文件我怎么样来了解
下载的进度如何
我的基本的下载是这样处理的.......s:=Tstringstream.Create('');
form1.IdHTTP1.Get(ASourceDir,s);
f:=tfilestream.Create(SaveDir,fmCreate);
s.Seek(0,soFromBeginning);
f.CopyFrom(s,s.Size);
s.Free;
f.Free;
form1.Memo2.Lines.Add(ASourceDir+'下载成功');...........
hlep
下载的进度如何
我的基本的下载是这样处理的.......s:=Tstringstream.Create('');
form1.IdHTTP1.Get(ASourceDir,s);
f:=tfilestream.Create(SaveDir,fmCreate);
s.Seek(0,soFromBeginning);
f.CopyFrom(s,s.Size);
s.Free;
f.Free;
form1.Memo2.Lines.Add(ASourceDir+'下载成功');...........
hlep
解决方案 »
- 打开门户网站时的网速测试问题!
- 這個控件老裝不上??????
- 新手问题----------ListBoxInt.ItemIndex
- 怎样控制excel中cell的对齐格式?在线求救呀!急!急!急!
- 用ClientDateSet和ADODataset,为什么只能修改不能添加
- DxDbGrid到底是什么啊,找了一下午没搞明白,郁闷,谁能最详细的告诉我,我马上给他100分.还有在哪下载?
- 請問char 轉換成string 是不是chrtostr 怎麼不對?
- 紧急,紧急!!!
- 请问如何让单字节的字符串变回双字节的字符串。
- 如何去掉连接sqlserver数据库时的login窗口?
- 改变窗体的尺寸!
- 怎样做一个给手机发送短信的程序?
OnWorkBegin
OnWorkEnd,你可以这三个事件里面完成下载的进度显示,具体的用法你可以参考IdFtp的Demo,他们用法是相同的。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
IdHTTP1: TIdHTTP;
procedure Button1Click(Sender: TObject);
procedure IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
procedure IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
d:string;
begin
try
d:=idhttp1.Get('http://www.sohu.com');
except
showmessage('c');
end;
end;procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
progressbar1.Position:=1;
progressbar1.Max:=aworkcountmax;
end;procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
progressbar1.Position:=progressbar1.Max;
end;procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
progressbar1.Position:=aworkcount;
end;end.