猫猫发布的,把UrlDownloadToFile及其进度提示功能都封装进了一个线程类中,源码页面地址:
http://blog.csdn.net/scansoft/archive/2008/11/01/3201156.aspx研究几天,始终没明白如何去调用它,如果是一个简单UrlDownloadToFile使用,没问题,但他这个确实挺牛的,想学习学习,还请各路大虾给讲解下。例如在Button1Click中,如何调用他这个呢?

解决方案 »

  1.   

    代码都封装好了,没什么好说的,看了一下代码有些不必要的东西可简化一下调用很简单,但要注意调用前,要对以下几个事件进行赋值:   TDownLoadProcessEvent
       TDownLoadCompleteEvent
       TDownLoadFailEvent
      

  2.   


    //先定义3个委托(事件变量)
    Type 
      TDownLoadProcessEvent = procedure(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal) of object;
      TDownLoadCompleteEvent = procedure(Sender:TFileDownLoadThread) of object ;
      TDownLoadFailEvent = procedure(Sender:TFileDownLoadThread;Reason:LongInt) of object ;
      TForm1=class(TForm)
      private
        procedure Progressproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal);
        procedure Completeproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal)
        procedure Failproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal)
      end;
    procedure TForm1.Progressproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal)
    begin
      //委托指定的用户自定义方法
    end;procedure TForm1.Completeproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal)
    begin
      //委托指定的用户自定义方法end;procedure TForm1.Failproc(Sender:TFileDownLoadThread;Progress, ProgressMax:Cardinal)
    begin
      //委托指定的用户自定义方法end;procedure TForm1.buttonn1Click;
    var
      MyTest:TFileDownLoadThread;
    begin
      MyTest:=TFileDownLoadThread.Create('www.XXXX.com/download/aaa.rar','c:\aaa.rar',Progressproc,Completeproc,Failproc,True);
      MyTest.Resume;
    end;
      

  3.   

    把Type之后的3个定义去掉,我仅是看着方便,不用定义!