调试时有错误提示,但是执行编译后的exe文件却没错误,不知道哪里的问题!
我的程序中因为有循环,为了能使循环过程中,能点击form上的关闭退出程序,在form的onclose事件中加了:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
b:=false;
close;
end;对应的,在循环中也用了, b:=true;
while not adoquery1.eof do
begin if not b then
exit; //其他 end;在调试的时候提示:但是运行编译的exe文件却没有错误提示,一切正常。虽然不影响正常使用,但是看着不舒服,不知道这是怎么回事?备注,我如果将Onclose事件中的代码
b:=false;
close;
去掉就没那种提示,但是这样,循环中就关闭不了了。
我的程序中因为有循环,为了能使循环过程中,能点击form上的关闭退出程序,在form的onclose事件中加了:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
b:=false;
close;
end;对应的,在循环中也用了, b:=true;
while not adoquery1.eof do
begin if not b then
exit; //其他 end;在调试的时候提示:但是运行编译的exe文件却没有错误提示,一切正常。虽然不影响正常使用,但是看着不舒服,不知道这是怎么回事?备注,我如果将Onclose事件中的代码
b:=false;
close;
去掉就没那种提示,但是这样,循环中就关闭不了了。
begin
b:=false;
close;
end;这个似乎有问题吧,在FromClose里面调用close,这里是个死的递归调用,所以会引起栈溢出。
begin
b:=false;
Action := caFree;
end;
试一下。
看看你的递归有结束条件吗?
begin
b:=false;
sleep(200);
application.ProcessMessages();
end;