如果组件构造进是 create(self)的话,在宿主析构时会自动析构该组件。
也就是说在应用程序关闭时会自动清除有宿主的组件,那如果是create(nil)的话是不是
在应用程序关闭后还是会存在内存中?
是不是这种原因导致有时程序打开多次后,系统会变慢,要重启一下就好了。
小弟很困惑!求助
也就是说在应用程序关闭时会自动清除有宿主的组件,那如果是create(nil)的话是不是
在应用程序关闭后还是会存在内存中?
是不是这种原因导致有时程序打开多次后,系统会变慢,要重启一下就好了。
小弟很困惑!求助
解决方案 »
- 兩個時間相減相加判斷?
- 100分求解决方案
- 在线苦等,谢谢高人近来指教
- 参数的问题,不够分再加
- 如何在程序中自动产生一个文本文件,并保存在指定目录下面?
- 关于TreeView的建结点问题,来者有分哈
- 100分跪求DEPHI(前台)+SQLSERVER(后台)的财务管理系统(源代码)或相关资料
- 请问如何把自己的程序加到浏览器上边的标准按钮里?就像金山词霸和FlashGet那样?
- 请大家帮帮忙!!
- 高分求解!!!(关于Delphi报表)分数可以再加???
- RichEdit中的文本text怎么存成txt文件,以便用计事本打开?,使用TStrings 的savetofile有点问题。
- 读取INI文件问题
edit:array[0..5000] of Tedit;
i: integer;
begin
for i:=0 to 10000 do
begin
edit[i]:=Tedit.Create(nil);
edit[i].Parent:=self;
end;
end;
析构时,是由这个owner来负责释放的。如果是nil,就得自己释放。
不过我还是喜欢用nil。
destructor TComponent.Destroy;
begin
Destroying;
if FFreeNotifies <> nil then
begin
while Assigned(FFreeNotifies) and (FFreeNotifies.Count > 0) do
TComponent(FFreeNotifies[FFreeNotifies.Count - 1]).Notification(Self, opRemove);
FreeAndNil(FFreeNotifies);
end;
DestroyComponents;
if FOwner <> nil then FOwner.RemoveComponent(Self);
inherited Destroy;
end;
但是,还是多加一句吧。如果有Create,而没有Free,我总觉得怪怪的。