如果中断循环,推出程序(100分送上)(100分)

  • 主题发起人 主题发起人 yepp
  • 开始时间 开始时间
Y

yepp

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中用到了StringGrid控件,用for循环处理数据,将符合条件的数据输入到StringGrid的
表中,但使用中发现,如果想关闭正在处理的程序却很困难,如何才能快速、安全的关闭正在
运算中的程序,谢谢。
 
在循环中判断标记位,如果设置了则退出

for I := 0 to 100000 do
begin
if ((I mod 1000) = 0 and IsBreak then
Break;
//Do something
end;
即是每循环1000次判断一下IsBreak标记是否为True,当然要根据你循环的执行速度及
用户可忍受的响应速度来考虑1000这个值是否要增大或减小。
 
做个变量bBreak :Boolean;
在OnClose里bBreak :=true;

在循环里
for i :=1 to 10000000 do
begin
if bBreak then Break; //P4 1G的CPU每秒钟能运行10亿次,不会在意这一行代码的。


end;
 
for I := 0 to 100000 do
begin
//Do something
Application.ProcessMessages;
if Application.Terminated then Break;
end;
这样程序绝对流畅,退出安全。
 
谢谢,问题解决,我爱大富翁。
 
后退
顶部