差别就在于
owner宿主
nil没有宿主
而self是创建自已的默认类
推荐用self
这样可以在self释放时同时释放自己

解决方案 »

  1.   

    create方法应带有表示构件所有者的参数
      

  2.   

    self 代表当前类;
    如果在tform2中
    procedure TForm2.Button1Click(Sender: TObject);
    var
      ff:tform1;
    begin
       ff:=tform1.Create(self);
    end;
    此时self 为tform2  form2释放时 ff也使放了;在工程文件中var
      ff:Tform1;
    begin
      Application.Initialize;
      Application.CreateForm(TForm2, Form2);
      ff:=tform1.Create(self);
      Application.Run;
    end.
    你连编译也过不了;self不知该指向何方
    只能
    ff:=tform1.Create(application);
    ff:=tform1.Create(nil);
      

  3.   

    newyj(方恨少;寻找第二把刷子的人) 你的水平确实很高,可以交流交流吗(发发mail)
      

  4.   

       to: Focus(老鱼) 你的回答中有bug ;self 的意思你弄错了;to small_pig(小猪) [email protected]