如题

解决方案 »

  1.   

    if FormName = nil then FormName := TFormName.Create(Application);
      FormName.Show;
      

  2.   

    zcwzf(阿超),这个我也知道,但是我不是要用这个来控制,如果一个项目有两百个窗体,那么我就得写两百句,是否有循环的方法,或者更好的方法,还请高手指教!
      

  3.   

    stargazer(星空守望者) :如何找到项目中已经打开的所有窗体!
      

  4.   

    不知道什么叫打开?是不是创建了就算打开了?如果是这样的话可以这样判断:for i := 0 to Application.ComponentCount - 1 do
    begin
      if Application.Components[i] is TForm  then
         .........
    end;
      

  5.   

    1.if Form1.Active then ...2.给你代码参考var
      Hdl,hd: THandle;
      DC: HDC;
    begin
      FORM2.SHOW;
      form2.update;
      Hdl := Application.Handle;
      hd  := GetWindow(Hdl, GW_HWNDLAST + GW_CHILD);
      if hd <> NULL then
      begin
        DC := GetDC(hd);
        Ellipse(DC, 0, 0, 100, 100);
        ReleaseDC(hd, DC);
      end;
    end;
      

  6.   

    你用全局变量吗?
    那样的话
    if not assgined(FormName) then 
    begin
     create
    end
    else
    show
      

  7.   

    局部变量的话,不好办,也可以解决的
    用一个List,来保存form object
    之后在list中判断
      

  8.   

    Screen.Forms保存所有已经创建的窗体,Screen.FormCount为个数,自己写个循环得了。
      

  9.   

    if not assgined(FormName) then 
    begin
     //创建窗口
    end//对窗口进行操作
      

  10.   

    写个函数只须传入代表窗体的String就创建窗体,关闭也一样。
    (提醒用GetClass())
      

  11.   

    写个函数只须传入代表窗体的String就创建窗体,关闭也一样。
    (提醒用GetClass())