我做了一个控件,控件里动态创建了一个 FPanel;在控件的 onCreate 事件里设置
FPanel:=TPanel.Create(nil);在控件的 onDestroy 事件里设置 if Assigned(FPanel) then
FreeAndNil(FPanel);结果控件所在窗体关闭的时候就报错。
原因是 FreeAndNil(FPanel); 这句话导致的。我就纳闷:
这样控制好了,系统好像不应该报错吧: if Assigned(FPanel) then
FreeAndNil(FPanel);因为 如果能够确认 Assigned(FPanel) =true
那么就必然可以执行 FreeAndNil(FPanel);难道这种写法存在危险?真不知道怎样写才安全。
FPanel:=TPanel.Create(nil);在控件的 onDestroy 事件里设置 if Assigned(FPanel) then
FreeAndNil(FPanel);结果控件所在窗体关闭的时候就报错。
原因是 FreeAndNil(FPanel); 这句话导致的。我就纳闷:
这样控制好了,系统好像不应该报错吧: if Assigned(FPanel) then
FreeAndNil(FPanel);因为 如果能够确认 Assigned(FPanel) =true
那么就必然可以执行 FreeAndNil(FPanel);难道这种写法存在危险?真不知道怎样写才安全。
解决方案 »
- 如何在DELPHI2007中新建CLX APPLICATION?
- 如何设置single的小数位
- 怎样修改菜单上的快捷键
- 为什么用DELPHI的ADO来查询SYBASE数据库的时候特别慢呀?
- TCoolBar的动态增加控件问题
- 请教各位大侠,系统快照的怎么释放不掉啊
- 求购"活动报表"
- 如何把消息常量(数字)和它的标识符(字母)对应起来?
- 数据库问题多多,谁来帮我?我要做一个图书管理系统(Win98+Delphi5+Access2000),程序最终要在无Delphi的机器上演示给老师看,用什么方法
- 小菜鸟有一问:TMainMenu的Click事件怎样和ToolButton联系起来?
- 如何循环读取注册表中某个主键下的所有子键?
- 各位那里有下拉多列表框啊
所以你还是检查FPanel这个变量在别的地方有没有赋值.错误并不是FreeAndNil引起的。