Q
qwerpoiu10
Unregistered / Unconfirmed
GUEST, unregistred user!
以前我也问过这个问题,但一直没有得到很好的解决。
动态往CheckListBox里添加了一些下载任务,选择需要下载的任务后,按button1开始下载,按button2停止下载。
这是我程序中下载部分的代码:
stop: boolean //全局变量
//button1的事件:
stop:=false;
button2.enable:=true;
for j:= 1 to MyStrList.countdo
try
Application.ProcessMessages;
//以前有些高手们告诉我在这个for循环里加上这句就可以中断后一个任务的下载,但不能中断当前的下载,并且速度不太明显。
if stop then
break;
tmpStream:=TFileStream.Create(DirEdit.Text+'/'+GetFileName(MyStrList.Strings[j-1]),fmCreate);
FNLabel.Caption :=GetFileName(MyStrList.Strings[j-1]);
FNLabel.Update;
idHttp2.Get(MyStrList.Strings[j-1],tmpStream);
finally
tmpStream.Free;
end;
//button2的事件
stop:=true;
我试了以后,当按下button1后,程序是很慢,无法很好的点击button2,但还是可以点它,点击button2后,
可以中断后一个任务的下载,但现在的问题是,中断下载后,程序就出错了,怎么解决呢?
动态往CheckListBox里添加了一些下载任务,选择需要下载的任务后,按button1开始下载,按button2停止下载。
这是我程序中下载部分的代码:
stop: boolean //全局变量
//button1的事件:
stop:=false;
button2.enable:=true;
for j:= 1 to MyStrList.countdo
try
Application.ProcessMessages;
//以前有些高手们告诉我在这个for循环里加上这句就可以中断后一个任务的下载,但不能中断当前的下载,并且速度不太明显。
if stop then
break;
tmpStream:=TFileStream.Create(DirEdit.Text+'/'+GetFileName(MyStrList.Strings[j-1]),fmCreate);
FNLabel.Caption :=GetFileName(MyStrList.Strings[j-1]);
FNLabel.Update;
idHttp2.Get(MyStrList.Strings[j-1],tmpStream);
finally
tmpStream.Free;
end;
//button2的事件
stop:=true;
我试了以后,当按下button1后,程序是很慢,无法很好的点击button2,但还是可以点它,点击button2后,
可以中断后一个任务的下载,但现在的问题是,中断下载后,程序就出错了,怎么解决呢?