社区
GAME,图形处理/多媒体
帖子详情
动态创建的组件或窗体的资源释放问题
King_Dragon
2002-05-31 09:40:46
在程序中,属于运行期动态创建的组件或是窗体,如果指定了Owner,没有显示调用组件或窗体的Free方法,在程序结束时会不会自动调用Free方法,释放动态组件所占有的资源?
另外,如果动态创建组件时没有指定Owner参数(Owner为nil),也没有调用Free或Destroy方法,程序结束时会不会自动释放.请说明理由或是原因!
...全文
67
3
打赏
收藏
动态创建的组件或窗体的资源释放问题
在程序中,属于运行期动态创建的组件或是窗体,如果指定了Owner,没有显示调用组件或窗体的Free方法,在程序结束时会不会自动调用Free方法,释放动态组件所占有的资源? 另外,如果动态创建组件时没有指定Owner参数(Owner为nil),也没有调用Free或Destroy方法,程序结束时会不会自动释放.请说明理由或是原因!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hellochina
2002-05-31
打赏
举报
回复
在程序中,属于运行期动态创建的组件或是窗体,如果指定了Owner,没有显示调用组件或窗体的Free方法。那么在Owner Free的时候,就会自动释放组件所占有的资源。
如果Owner的参数为nil的时候,在Owner Free的时候,是不会自动释放组件的,必须自己显示的释放。
因为在TComponent中有一个私有的FComponents,如果在组件Create的时候,如果Owner不为nil, 那么,该组件就会加入到Owner的FComponents,如果组件或者窗体没有调用Free,那么会在Owner Free 的时候,Owner会自动Free FComponents 中的所有成员。如果组件或者窗体自己显示的调用了Free,那么就会从Owner 的FComponents 中删除,不存在Free两次在现象。
详细的情况可以看一下Delphi 中TComponent的实现。
Almzg_0
2002-05-31
打赏
举报
回复
Owner解释为宿主,你自己可以做个小测试。比如在一个PANEL上自动创建一个BUTTON,然后只释放PANEL,你在程序中FINDCOMPONENT将找不到那个BUTTON
bigchg
2002-05-31
打赏
举报
回复
找不到句柄
动态库封装调用
窗体
实例.rar
Delphi动态库封装与调用
窗体
的实例,代码简单易懂,适合新手学习。动态库封装方法大家都会,但是对于封装
窗体
可能比较陌生。
delphi 动态链接库封装
窗体
与调用
delphi 动态链接库封装
窗体
与动态调用
Delphi的BPL动态加载
窗体
Delphi的BPL动态加载
窗体
!
Delphi11.3FMX嵌套FMX
窗体
Delphi11.3FMX嵌套FMX
窗体
Delphi XE2+Dev 主
窗体
Panle嵌入DLL
窗体
源码
在XE2+Dev开发环境下亲测可用,已经在项目中使用。 功能:将DLL封装的
窗体
嵌入主程序的Panel中,非主副
窗体
结构,DLL
窗体
能完美融于主
窗体
。
GAME,图形处理/多媒体
1,184
社区成员
14,330
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章