有form1和form2,都是一般的窗口,不是mdi窗口。在form1的button1的click事件中,代码如下:
form2 := tform2.create(self);
form2.show;默认form2是不创建的,是通过上面的代码创建的。当然,form1是主窗口,会通过类似上面的代码创建很多的子窗口。我想问一下,在form1中,如何能够知道有多少个窗口被创建了???

解决方案 »

  1.   

    方法很多:1.用变量,创建一个就+1
    2.用TList管理
    3.用create(Application)创建,这样判断
     for i:=0 to Application.ComponentCount -1 do
     if Application.Components[i] is TForm Then4. ...
      

  2.   

    var
      I, N: Integer;
    begin
      N := 0;
      for I := 0 to Screen.FormCount - 1 do
        if not (Screen.Forms[I] is TForm1) then
          Inc(N);  ShowMessage(IntToStr(N));
    end;
      

  3.   

    如果不是MDI窗体,则可以这样在Delphi的IDE中查看。
    方法:Project->Options->Forms标签:
    其中:
    Main form         是主窗体。
    Auto_Create Forms 注册并创建的窗体(只需要Show就可以)。
    Available Forms   注册的窗体,但还没被创建(需要Create在Show)。
      

  4.   

    如果是form1是主窗体查询的是子窗体可以这样。
    form1.MDIChildCount