我的升级程序如下
var  savefile: TMemoryStream;  for i := 0 to files.Count - 1 do //得到需要升级的文件    
begin
   savefile := TMemoryStream.Create; 
   HTTPFiles.Get('www.cscsj.com'+ filestr[i], savefile);  //
   savefile.SaveToFile(g_path +  filestr[i]); //

解决方案 »

  1.   

    for i := 0 to files.Count - 1 do //得到需要升级的文件    
    begin
       savefile := TMemoryStream.Create; 
       HTTPFiles.Get('www.cscsj.com'+ filestr[i], savefile);  //
       //让系统可以响应其他操作
       Application.PeekMessage;  //好象是这个,反正是P开头的属性,你自己打个 . 之后看看。
       savefile.SaveToFile(g_path +  filestr[i]); //
    end;
      

  2.   

    是  Application.ProcessMessages吗,我试了不行
      

  3.   

    你需要事先定义一个全局变量,比如叫,StopIt : boolean;
    开始下载前,StopIt := false;
    然后,在停止按钮的事件里写:
    StopIt := True;for i := 0 to files.Count - 1 do //得到需要升级的文件    
    begin
       savefile := TMemoryStream.Create; 
       HTTPFiles.Get('www.cscsj.com'+ filestr[i], savefile);  //
       //让系统可以响应其他操作
       Application.PostMessage;  //好象是这个,反正是P开头的属性,你自己打个 . 之后看看。
       savefile.SaveToFile(g_path +  filestr[i]); //
       if (StopIt) then
       begin
       //这里中断你的循环
       //比如 exit for
       end;
    end;
      

  4.   

    应该放到线程里面
    或者加一个Timer
    Timer代码:
    OnTimer
    IF btnStop.Clicked 或者变量 Stoped:=True Then 中断
      

  5.   

    将FigoZhu(谢慕安) 那段中的
    Application.PostMessage;
    改为
    Application.ProcessMessages;