新建一程序,有Form1和Form2,其中Form1为主窗体
在Form2的Close中添加执行代码如ShowMessage
正常关闭Form2时会执行代码,如果关闭Form1终止程序的运行时Form2也会被自动关闭,但却不会执行Form2的Close中的代码,如何才能实现终止程序时自动关闭Form2的同时执行Form2的Close中的代码

解决方案 »

  1.   

    ..........Close Form1 的事件中加
    Close Form2
      

  2.   

    在OnCloseQuery时执行仍是如此
    如果在Form1中执行Form2的Close,可能事先我并不知道有多少个Form要关闭怎么办
      

  3.   

    From1 OnClose 事件中
      
      if Form2.Showing then Form2.Clsoe;
      if Form3.Showing then Form3.Clsoe;
       ...
      

  4.   

    有更好的方法吗,就像VB中有个Forms集合,里面是所有已打开的窗口
      

  5.   

    设定一个form的close事件 showmessage
    然后在所有其它form都从这个form继承就可以了啊
      

  6.   

    以下是一个网友的方法:
    var i,j:integer;
    begin
    j:=Application.ComponentCount-1;
    For i:=j downto 2 do
    TForm(Application.Components[i]).Close;