登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: delphi7自己释放控件的bug?     [回主站]     [分站链接]
标题
delphi7自己释放控件的bug?
clq
浏览(0) + 2007-02-09 13:20:10 发表 编辑

关键字:

今天发现一个非常奇怪的错误,程序在退出时老是报错,看了一下错误号为216,应当是访问了非法内存,最后发现是一个动态创建的 TWebBrowser 引起的,修改后的代码如下.

constructor TCLQHttpThreadCotrol1.Create(AOwner: TComponent);
begin
inherited;
post_data1:=tstringlist.Create;
pre_data1:=tstringlist.Create;
is_get1:=false;

//创建后要自己删除//可能是delphi7的bug
WebBrowser1:=TWebBrowser.Create(application.MainForm);
WebBrowser1.Visible:=false;

end;

destructor TCLQHttpThreadCotrol1.Destroy;
begin
//http1.free; //?需要这个调用吗?
post_data1.Free;
pre_data1.Free;

WebBrowser1.Free;//创建后要自己删除//可能是delphi7的bug
WebBrowser1:=nil;//创建后要自己删除//可能是delphi7的bug
inherited;

end;

增加了
WebBrowser1.Free;//创建后要自己删除//可能是delphi7的bug
WebBrowser1:=nil;//创建后要自己删除//可能是delphi7的bug
后程序才正常,但实际上 "TWebBrowser.Create(application.MainForm);"已经指明了由主窗体来自动释放的了.更为奇怪的是在一般情况下是不会出错的,只有在程序中调用了 tsavedialog.execute 后在退出程序时才会报这个错.真是百思不得其解. tsavedialog 和主窗体的控件自动释放在什么关系? 这是我碰到的最不可思议的bug了.


总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1