没有任何关系,虽然都是TNewF对象。
正如
var a,b:integer;
a,b都是integer对象,但没有任何关系。

解决方案 »

  1.   

    TNewF.Create(Nil)创建一个实例,但需要手工释放
    showmodel就不会出错
    所以建议cszhz(丑小鸭)的代码
      

  2.   

    不知你是不是想按Button2来关闭窗体,如果是的话,怎么能按了以后还可以按第二次呢。
    如果是关闭窗体的话,你这样写好象是不行的。建议参考以下代码。
    procedure TNewF.BitBtn2Click(Sender: TObject);
    begin
      Close; //在此不能用Self对象,
    end;procedure TNewF.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      NewF.Free;
    end;
      

  3.   

    1、to eastroc(东方路):是按Botton2来关闭窗体,是说第一次创建的可以Free,后创建的都不能FREE。
    2、为什么提示"control '' has no parent window"
    3、to eastroc(东方路):请问NewF.free;是释放TNewF.Create(Nil)的吗?
      

  4.   

    TNewF是一个Form那么应该为他指定一个父窗口!
    TNewF.Create(Application)
      

  5.   

    zwjchina(蒲石) 说的对。
    TNewF.Create(Nil)创建的窗体应该无法可视的啊。
    TNewF.Crate(nil) 相当于 NewF := TForm.Create(nil);
    NewF.Free是释放NewF对象。最好加上NewF := nil;
      

  6.   

    是按Botton2来关闭窗体,为什么第一次创建的可以Free,后创建的都不能FREE。
      

  7.   

    我用你的代码做了以下测试!
    第一次都不行!
    procedure TNewF.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=caFree;//就行了
    end;        
      

  8.   

    我很想知道为什么?CAN YOU TELL ME WHY?
      

  9.   

    FormClose不是Form对象的最后一个过程,还有一些其他的过程要调用
    就拿我上面的例子来说,Action:=caFree后
    在FormClose后会Form会根据Action来决定是否释放Form的资源!(也就是要调用其他过程)
    那么你在FormClose中使用Self.Free就会过早释放资源,导致内存访问冲突!