Delphi 编译关闭时 Stack overflow 错误

2023-12-17 13:29:07

? ? ?本人工程文件,编译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

文章来源:https://blog.csdn.net/lyhoo163/article/details/135043341
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。