我的FORM2是自动生成的
如:
try
     fo:=Tform2.Create(Self);
     fo.ShowModal;
   finally
    fo.Free;
    fo:=nil;
   end;
   在FORM2中添加BUTTON1,如何在BUTTON的事件BUTTON1。CLICK中来释放FORM2,相当于按下关闭框,而不产生异常!

解决方案 »

  1.   

    因为你已经在form2中关掉窗体了。
    finally中还要free当然出错了。
    可以用
    try
    except
        出错的时候才执行;
        最好这样写:
        if fo <> nil then
        begin
            fo.free; 
        end;
    end;
      

  2.   

    可不可以BUTTUON1。CLICK事件中添加FORM2关闭的代码,就象当于按下关闭框,而不产生异常!  
      

  3.   

    if fo<>nil then fo.Free;
      

  4.   

    可以
    你上面的代码中 改为try..except句式
    在onclick事件中加上:
      frm.close;
    在frm 的close事件中写action := cafree;
      

  5.   

    要是坚持用原来的写法的话,Fo返回一个ModalResult就可以啦
      

  6.   

    一只岸上的鱼:
    建议你找本<<delphi 5 开发人员指南>>里面有一章讲的很好
      

  7.   

    直接写在函数里写 close 就可以了。
      

  8.   

    同意   findcsdn(findcsdn)
    把Button1的ModalResult 设置为 MR_Cancle
    你Click时,就自动触发关闭事件了
    或者你不用设置MR_Cancle直接 在.Click里面写
    Close
    就可以了
      

  9.   

    直接 Close 就行了。
    释放的问题交给 Delphi 来做。因为窗体是自动创建的。