请各位大虾帮忙!!!如何测试出程序为什么不能退出系统(采用Application.terminate),如何定位错误?
glboy 2005-09-21 10:09:16 这是程序退出系统时执行的全部代码:
if ConfirmMsg('您确定要退出本系统吗?')=True then
begin
// if (Application.MainForm.MDIChildCount > 0) then
// begin
// for i:=Application.MainForm.MDIChildCount-1 downto 0 do
// Application.MainForm.MDIChildren[i].Close;
// end;
// if Assigned(ChildFormList) then ChildFormList.free;//注释:ChildFormList为主程序create时创建的一个Tstringlist对象
Application.Terminate;
//即使我将上面的代码都屏蔽,只执行 Application.Terminate;但系统就是不能退出,而将上面屏蔽的代码释放,则会出现“地址访问冲突”(特别声明:该情况只发生采用智能ABC输入法录入中文信息才出现异常,而采用其他输入法,不管怎么样,程序都是正常退出系统)
end;
-----------------------------------
以上代码写在程序中的MenuItem中一个Item为“退出系统”的事件代码中
另外在“FormCloseQuery”也放置了一样的代码,因为采用的是MDI模式
放置的代码位置是没问题的,关键是在程序中的录入窗体如果录入数据采用的是智能ABC输入法录入中文信息,那么程序就不能退出,只能用任务管理器关闭,而采用其他任何输入法都没问题,我想程序不能退出,肯定是哪个部分有问题,但我前后都仔细检查过,都没发现有造成这样问题的程序代码
(主要怪异的情况在于:关键是在程序中的录入窗体如果录入数据采用的是智能ABC输入法录入中文信息,那么程序就不能退出,只能用任务管理器关闭,而采用其他任何输入法都没问题,)