var
form1:Tform1;
begin
form1:=Tform1.create(nil);
form1.show;
////////
form1:=Tform1.create(Tform1);
form1.show;有什么区别?????????

解决方案 »

  1.   

    打错了点点,应该是:
    var  
    form1:Tform1;  
    begin  
    form1:=Tform1.create(nil);  
    form1.show;  
    ////////  
    form1:=Tform1.create(form1);  
    form1.show;  
     
    有什么区别?????????
      

  2.   

    form1:=Tform1.create(nil); 表示form1没有拥有者(Owner),必须自己手动释放,form1.free;
    第二句的参数有问题,不能是Tform1(类型不对),必须是一个已存在的对象,比如form2,
    form1:=Tform1.create(form2); 表示form1的拥有者是form2, 如果没有执行form1.free
    的话,则form2关闭时会把form1释放掉。
      

  3.   

    form1:=Tform1.create(form1); 因为form1还未创建,可能会有问题。
      

  4.   

    手动释放就是用 form1.free 啊。
      

  5.   

    hehe^^form1:=Tform1.create(Application);  
    form1.show;
      

  6.   

    sysu(死树) 兄:
    不行哦,还是有内存泄漏哦???
      

  7.   


    form1:=Tform1.create(form1);  
    form1.show;  是不是相当于
    form1:=Tform1.create(nil);  
    form1.show;
      

  8.   

    form1:=Tform1.create(form1); 应该是没有问题吧
    就和form1:=Tform1.create(self);一样啊
      

  9.   

    设定宿主如Button1:=TButton.Create(Form1);
    那Form1就是Button1的宿主,释放Form1的同时会同时释放Button1
      

  10.   

    form1:=Tform1.create(form1); 编译会报form1未初始化,虽然能正常运行,但总是不太好吧。
      

  11.   

    form1:=Tform1.create(Tform1);?????????
    应该是
    form1:=Tform1.create(self);
    或者
    form1:=Tform1.create(application);
    吧!create(nil)会造成如下问题:
    1:在form1实例变量被覆盖后,无法再引用这个窗体的实例指针。
    2:释放时,需要调用free;
    create(self):
    当self所指向的释放时,也释放form1
    create(application):
    程序结束时,自动释放form1