编译的时候没错,运行EXE文件也大部分时候正常没错,就是偶尔会窜出个这个错误提示来,出现这个的几率非常小,真是无从下手了,估计是什么原因?还有就是如何能找出出错的地方??
解决方案 »
- 线程问题
- (新手提问)数据库中记录转跳的问题
- 怎么总是显示"由于目标机器积极拒绝,无法连接"
- 非全局钩子不能钩到程序加载的DLL内部的系统函数(有示意图) 请各位大侠帮帮忙!
- 动态连接库DLL中可以用继承吗?主要是要继承一些窗体和代码?
- 求源代码及相关下载网址,关于 基于WEB的delphi编程的书与例子
- 我用Quick Report打印Table控件中的記錄﹐確只打印了第一條記錄﹐請問如何解決這個問題﹐是否是哪裡設置有問題﹖
- ODAC 控件的帮助!
- 一个简单的问题
- 怎样捕捉控件的Win消息
- 高手支招:执行 update sql语句,影响行返回为1,但实际上有时数据记录并没有修改成功.
- 春分之日,昼夜公平【照例散分帖】
不过看提示,这不一定是内存泄露问题,应当是非法访问错误
type
TTestForm = class(TForm)
procedure TestFormCreate(Owner: TObject);
procedure TestFormDestroy;
private
FChildForm: TMyChildForm;
end;implement
procedure TTestForm.TestFormCreate(Owner: TObject);
begin
Application.CreateForm(TMyChildForm, FChildFomr); // 这句会造成问题
// 如果在OnDestroy中自己释放FChildForm,不能用下面这句,而应该用
// FChildForm := TMyChildForm.Create(nil); //注意Owner是nil
// 注意写成FChildForm := TMyChildForm.Crate(self);也是错误的
// 因为如果你用Application.CreateForm或者TMyChildForm.Create(self)
// 都会把主窗口设置成子窗口的Owner
// 而根据VCL的设计,Owner在销毁时会自动释放自己所有的Child
// 但是你已经在OnDestroy里面销毁了对象,所以自动发生的自动销毁会造成AV错误
end; procedure TTestForm.TestFormDestroy;
begin
FreeAndNil(FChildForm);
end;
检测有无内存泄露可以在窗口创建时加入下面语句
ReportMemoryLeaksOnShutdown := true;