var
form1:Tform1;
begin
form1:=Tform1.create(nil);
form1.show;
////////
form1:=Tform1.create(Tform1);
form1.show;有什么区别?????????
form1:Tform1;
begin
form1:=Tform1.create(nil);
form1.show;
////////
form1:=Tform1.create(Tform1);
form1.show;有什么区别?????????
解决方案 »
- delphi中findfirst函数中文SearchRec.Name<>'.'和SearchRec.Name<>'..'是什么意思
- delphi中如何判断字符为汉字、英文字母或数字?急~~~~
- 哪里有dbexpress for mysql4.1的驱动阿,现在的是3.2的驱动(最好是C++Builder的)。
- PETS-3 笔试口试全过了,散分 :)
- 关于时间计算,在线急急急等待!!!
- 关于owner与parent的问题。
- FORM上画的图象,最小化后又最大化就不见了,该如何处理?
- delphi mscomm控件使用
- 有关数据库获得错误代码的问题
- 求xe的手机app源代码
- ODAC?
- 请教:如何在命令(DOS窗)里编译Delphi程序?
var
form1:Tform1;
begin
form1:=Tform1.create(nil);
form1.show;
////////
form1:=Tform1.create(form1);
form1.show;
有什么区别?????????
第二句的参数有问题,不能是Tform1(类型不对),必须是一个已存在的对象,比如form2,
form1:=Tform1.create(form2); 表示form1的拥有者是form2, 如果没有执行form1.free
的话,则form2关闭时会把form1释放掉。
form1.show;
不行哦,还是有内存泄漏哦???
form1:=Tform1.create(form1);
form1.show; 是不是相当于
form1:=Tform1.create(nil);
form1.show;
就和form1:=Tform1.create(self);一样啊
那Form1就是Button1的宿主,释放Form1的同时会同时释放Button1
应该是
form1:=Tform1.create(self);
或者
form1:=Tform1.create(application);
吧!create(nil)会造成如下问题:
1:在form1实例变量被覆盖后,无法再引用这个窗体的实例指针。
2:释放时,需要调用free;
create(self):
当self所指向的释放时,也释放form1
create(application):
程序结束时,自动释放form1