各位老师:
   你们好,我建立了两个窗体,form1、form2,form1为主窗体,在form1的button1click事件中代码如下:
begin
form2.showmodal;
end;
在form2的onactivate中的代码如下:
begin
showmessage('宽宽是个高个子.');
close;
end;
我的原意是单击form1的button1后,在form2窗体上显示'宽宽是个高个子.',然后form2窗体关闭, 可是程序执行到close语句后却没有反应,form2窗体并没有关闭。但我在form2窗体上加了一个button 并在它的单击事件中写下close代码后,单击form2上的button,form2关闭。
请大家告诉我如何在form2的onactivate或oncreate事件中关闭form2.
谢谢!
                                            王振亚
                                          2003.08.12

解决方案 »

  1.   

    用个ttimer控件好了。设置其时间为0.0几秒,其事件为close,这样就能关闭了。
      

  2.   

    在button的onclick事件中添加代码:
              Application.Terminate;
      
    试试.
      

  3.   

    在Form2.FormClose 中加入 Action :=caFree;
      

  4.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      CanClose:=false;
    end;
      

  5.   

    呵呵procedure TForm2.FormActivate(Sender: TObject);
    begin
    showmessage('宽宽是个高个子.');
    PostMessage(Handle, WM_close , 0, 0);
    end;
      

  6.   

    同意楼上的:PostMessage(Handle, WM_close , 0, 0);
      

  7.   

    谢谢大家:
        问题已得到解决,但我还有点疑惑,为什么在form1中用showmodal,在form2的onclose事件中用action:=cafree 后form2依旧关闭不了。烦劳大家继续关注这个话题,谢谢!
                                                     王振亚
                                                2003.08.12