本人工程文件,编译EXE文件,程序关闭时出现 Stack overflow 错误。网搜索一些解决办法:比如,加大堆栈...,均不能问题。虽然,生成的EXE文件,执行时,无任何问题。
Stack overflow 错误,提示代码中是有错误,为此,作了一番搜索。
一、本人使用国外的第三方控制,从此入手,末找到有因。
二、错误是在退出软件时,出现这样的错误。因此在关闭窗口和退出程序的事件中, 一步一步地查找。
三、子窗口中退出窗口中找到原因后,主程序MainFrm中的还存在原因。
查找的步骤不一一细说了,
最终,找到问题。
1、这一问题,与常规的代码不同(常规是正常运行的);
2、这一问题,与使用第三方控件TRichview(TRickEdit)有关;
3、关键在窗口的FormDestroy事件中。常规用以下代码:
procedure TRichView_CH_Frm.FormDestroy(Sender: TObject);
begin
action:=caFree;
RichView_CH_Frm.Free;
end;
主程序的FormDestroy事件:
procedure TMainFrm.FormDestroy(Sender: TObject);
begin
// Self.Free;
MainFrm.Free;
end;
四、问题解决
1、主窗口的FormDestroy事件清空代码;
2、相关使用TRichView窗口的FormDestroy事件清空代码;
问题往往是一丢丢,花费大量时间去搜索查找,能找到还是幸运的,找不到...
问题分析,第三方控件,在释放的代码已经作为相关的处理,不必再操作了。否则,出现问题。
上述一个帮助记忆,二是为同仁提供一个借鉴。i