procedure TForm1.Button1Click(Sender: TObject);
var F: TForm2;
begin
  F := TForm2.Create(nil);
  F.Show;
end;

解决方案 »

  1.   

    直接用close;
    不要用form2.close;
      

  2.   

    with tform2.Create(application) do
      begin
          show;
      end;
    实例名并非form2
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      form2.Close;  //程序运行到这里的时候开始出错!
    end;procedure TForm2.Button1Click(Sender: TObject);
    begin
     Close;  //即可
    end
      

  3.   

    form1 := Tform.create(self);
    with form1 do
    begin
      show;
      free;
    end;
      

  4.   

    form1 := Tform.create(self);
     ShowModal ;
      free;
      form1 := nil ;
    --------------------
    form1的close 事件中不写action:=cafree;
      

  5.   

    小妹把类和实例弄在一起了!
    form2是变量名,
    TForm2是类,因为form2是全局变量所以你能引用!
    你可以试试
      showMessage(inttostr(handle));
      showMessage(inttostr(form2.handle));
    就明白了!
      

  6.   

    是啦,为什么我来晚了啊,小妹啊,把你的qq告诉我啊,以后有什么问题你就来问我啊
    ^U^
      

  7.   

    看来小妹还没有过门哟, 写错了, 是没有“入门”with tform2.Create(application) do创建的实例没有赋值给form2哟, 所以它们是不相等的哟, 所以form2可能是一个没有被实例化的对象指针(变量)哟, 所以form2.close会引发内存相关错误哟哈咻, 谁在后面捏我耳朵!!
      
      

  8.   

    有时后好象是有这样的问题。
    我一般用:
    try
    application.createform(tform,form);
    form.showmodal;
    finally
    form.free;
    end;
      

  9.   

    你为什么总要在主题上加“小妹?^_^?:捉虫”?
    难道你是GRIL?