在一个unit里建好一个form之后,俺想建一个类,把这个form作为这个类的一个成员然后用这段代码显示这个窗体
  Application.CreateForm(TForm1, Form1);
  Form1:=TForm1.Create(nil);
  Form1.show;
  end;
编译没问题,窗体显示也很正确,可是关闭窗体出错了,关不了,提示00490c4e
哪儿做错了?或者该怎么做?

解决方案 »

  1.   

    var Form1:TForm1;
      Form1:=TForm1.Create(nil);
      Form1.show;安全点用这个:
    Application.CreateForm(TForm1, Form1);
    Form1.show;
      

  2.   

    你有没有在主程序里uses 那个新建程序
    implementation
    uses form2;
      

  3.   

    动态建立form就是对话框啊。如果建立了,但是不收回空间会出问题吧。
    var Form1:TForm1;
      Form1:=TForm1.Create(nil);
      if form1.showmodal=mrok then
      begin
        
      end;
      form1.free;
      

  4.   

    var Form1:TForm1;
      Form1:=TForm1.Create(application);
      Form1.showModal;
    在form1.onclose事件中写
    begin
      Form1:=nil;
      Action:=caFree;
    end;
      

  5.   

    在关闭窗体的时候要把窗体占用的内存全部释放掉,delphi不能自动回收资源的,应该是这样,代码同楼上。
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var form2:TForm1;
    begin
       try
         form2:=TForm1.Create(Application);
         form2.Caption:='This is second form!';
         form2.ShowModal;
       finally
         form2.free;
       end;
    end;
      

  7.   

    没有释放窗体资源,try
      Application.CreateForm(TForm1, Form1);
      Form1:=TForm1.Create(nil);
      Form1.show;
    finally
      Form1.free;
    end;
      

  8.   

    这样更好一点,先检查是否存在,不存在则创建
    if not Assigned(mainfrm) then mainfrm:=Tmainfrm.Create(application);
                      mainfrm.showmodal;