请高手讲解一下这几个关于对象创建释放的语句的区别 Application.CreateForm('TMyForm',MyForm) MyForm.Create(nil);MyForm.Create(OtherForm);Myform.Free;MyForm.close;Myform := nil; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Free 释放内存nil 删除指针 http://expert.csdn.net/Expert/topic/2106/2106106.xml?temp=.3473169帮帮忙 很容易,Free是告诉操作系统当前指针指向的区域是不需要使用的了,可以被其他需要内存的程序占用,而给指针赋nil值是为了当前指针不要去访问刚才告诉操作系统可以释放的内存区域。以免触发异常 Close Normal类型的Form关闭时只是Hide,MDIChild类型的Form关闭时只是Minimize 个人想法 Application.CreateForm('TMyForm',MyForm) 基本上等同与MyForm := TMyForm.Create(Application);MyForm.Create(nil);MyForm.Create(OtherForm);表示MyForm的Owner(拥有者)是什么当Owner为NIL时,需要你自己释放。不为NIL时,由Owner释放。MyForm.close;关闭窗口,并没有释放(除非在OnCLose中设置了Action:=caFree)。后面还可以用MyForm.Show; 或者ShowModal调用。Myform.Free;释放MyForm指向的Form所占的内存。Myform := nil;将MyForm设置为NIL。注意:此时MyForm所占的内存不一定会释放!一般必须Myform.Free;Myform := nil;连用。 Application.CreateForm('TMyForm',MyForm) 基本上等同与 MyForm := TMyForm.Create(Application); MyForm.Create(nil); MyForm.Create(OtherForm); 表示MyForm的Owner(拥有者)是什么 当Owner为NIL时,需要你自己释放。 不为NIL时,由Owner释放。 MyForm.close; 关闭窗口,并没有释放(除非在OnCLose中设置了Action:=caFree)。 后面还可以用MyForm.Show; 或者ShowModal调用。 Myform.Free; 释放MyForm指向的Form所占的内存。 Myform := nil; 将MyForm设置为NIL。 注意:此时MyForm所占的内存不一定会释放! 一般必须 Myform.Free; Myform := nil; 连用。 Application.CreateForm('TMyForm',MyForm) 基本上等同与 MyForm := TMyForm.Create(Application); 如果在普通的单元中是这样,但是在在工程文件中有不同了。通过project--option--forms可以看出差别 windindance(风舞轻扬)讲得很好!认同!建议楼主可以结帖了。不要给我分。 Application.CreateForm('TMyForm',MyForm) 与MyForm := TMyForm.Create(Application); 唯一的一点区别是:当该应用程序还没有主窗口时,Application.CreateForm('TMyForm',MyForm)将自动把MyForm设置为该应用程序的主窗口。而MyForm := TMyForm.Create(Application)不会这样做的。 char数组,如何转换成字符串? dbgrideh过滤条件怎么替换为中文 请问DELPHI那个版本开始支持WIN32位系统 访问TWEBBROWSER里的控件 问一个不太难的问题,可是我真的不懂,在线等!!! 怎样用ado控件将查询数据的结果集转换为txt文本(在线等!!)! 如何获取指定文件夹下.txt文件的个数 chart组件统计问题? 请求思路,一个DELPHI程序要调用DLL,而DLL中的函数名,参数个数,参数类型为不定,要调用的DLL中的函数名、参数个数、参数类型要可以在 问一个小问题?在线等待! 高手看过来,一个简单的定时器(闹钟)问题 这个变是不是怎样取出来???
Free 释放内存
nil 删除指针
帮帮忙
关闭时只是Minimize 个人想法
基本上等同与
MyForm := TMyForm.Create(Application);MyForm.Create(nil);
MyForm.Create(OtherForm);
表示MyForm的Owner(拥有者)是什么
当Owner为NIL时,需要你自己释放。
不为NIL时,由Owner释放。MyForm.close;
关闭窗口,并没有释放(除非在OnCLose中设置了Action:=caFree)。
后面还可以用MyForm.Show; 或者ShowModal调用。Myform.Free;
释放MyForm指向的Form所占的内存。Myform := nil;
将MyForm设置为NIL。
注意:此时MyForm所占的内存不一定会释放!
一般必须
Myform.Free;
Myform := nil;
连用。
基本上等同与
MyForm := TMyForm.Create(Application);
MyForm.Create(nil);
MyForm.Create(OtherForm);
表示MyForm的Owner(拥有者)是什么
当Owner为NIL时,需要你自己释放。
不为NIL时,由Owner释放。
MyForm.close;
关闭窗口,并没有释放(除非在OnCLose中设置了Action:=caFree)。
后面还可以用MyForm.Show; 或者ShowModal调用。
Myform.Free;
释放MyForm指向的Form所占的内存。
Myform := nil;
将MyForm设置为NIL。
注意:此时MyForm所占的内存不一定会释放!
一般必须
Myform.Free;
Myform := nil;
连用。
基本上等同与
MyForm := TMyForm.Create(Application);
如果在普通的单元中是这样,但是在在工程文件中有不同了。通过project--option--forms可以看出差别
建议楼主可以结帖了。不要给我分。
与
MyForm := TMyForm.Create(Application);
唯一的一点区别是:
当该应用程序还没有主窗口时,Application.CreateForm('TMyForm',MyForm)将
自动把MyForm设置为该应用程序的主窗口。
而MyForm := TMyForm.Create(Application)不会这样做的。