您的位置:首页 > 编程语言 > Delphi

delphi 带进程条的文件下载

2008-08-11 14:11 281 查看
代码如下:

uses URLMon, ShellApi

2function DownloadFile(SourceFile, DestFile: string): Boolean;

3begin

4 try

5 Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;

6 except

7 Result := False;

8 end;

9end;

10procedure TForm1.BitBtn1Click(Sender: TObject);

11var

12 SourceFile: string;

13 DestFile: string;

14begin

15 SourceFile := 'http://dl.google.com/googletalk/googletalk-setup-zh-CN.exe';

16 DestFile := 'D:\软件升级\googletalk-setup-zh-CN.exe';

17 if DownloadFile(SourceFile, DestFile) then begin

18 ShowMessage(' Download succesful! ');

19 ShellExecute(Application.Handle, PChar('open'), PChar(DestFile), PChar(''), nil, SW_NORMAL)

20 end

21 else

22 ShowMessage(' Error while downloading ' + SourceFile)

23end;

24

25

26 IdHTTP1: TIdHTTP;

27 IdAntiFreeze1: TIdAntiFreeze;

28 ProgressBar1: TProgressBar;

29 BitBtn2: TBitBtn;

30

31procedure TForm1.BitBtn2Click(Sender: TObject);

32var

33 MyStream: TMemoryStream;

34begin

35 IdAntiFreeze1.OnlyWhenIdle := False; //设置使程序有反应.

36 MyStream := TMemoryStream.Create;

37 try

38 IdHTTP1.Get('http://dl.google.com/googletalk/googletalk-setup-zh-CN.exe', MyStream);

39 except

40 ShowMessage('没有下载成功!');

41 MyStream.Free;

42 Exit;

43 end;

44 MyStream.SaveToFile(ExtractFilePath(paramstr(0)) + 'HTTPDemo.zip');

45 MyStream.Free;

46 ShowMessage('OK');

47

48end;

49procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;

50 const AWorkCountMax: Integer);

51begin

52 //开始下载前,将ProgressBar1的最大值设置为需要接收的数据大小.

53 ProgressBar1.Max := AWorkCountMax;

54 ProgressBar1.Min := 0;

55 ProgressBar1.Position := 0;

56end;

57

58procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;

59 const AWorkCount: Integer);

60begin

61 //接收数据的时候,进度将在ProgressBar1显示出来.

62 ProgressBar1.Position := ProgressBar1.Position + AWorkCount;

63end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: