在一个工程里  有一个主窗体frmMain  和N个子窗体(类名各不相同)
现在  我想弄个TList数组变量 来保存这些窗口 并且最重要的是要能访问到这些窗口的事件(比如在TList类的对象里加了一个frm1的窗口  然后要能访问frm1.show()):
代码要怎么写呢??试了蛮久  好象都不行_-##

解决方案 »

  1.   

    定义一个记录类型
    比如 
    TFormRecord = record
      FormName: string;
      end;然后
    AForm: TFormRecord;
    AList: TList;AList := TList.Create;
      
    New(AForm);
    AForm^.FormName := Form1.Name;
    AList.Add(AForm) ;记得退出的时候释放一下 Dispose(AForm); AList.Free;你可以通过类变量配合AForm^.FormName来访问窗口。
      

  2.   

    AForm^.FormName是一个string啊  用string变量怎么访问到我的form??
      

  3.   

    DING下  在线等  急用
      

  4.   

    你可以用components对象访问,难道你编程序要别人给你写代码〉
      

  5.   

    定义一个记录类型
    比如 
    TFormRecord = record
      FormName : string;
      ShowForm : TForm;
      end;
    PFormRecord = ^TFormRecord;
    然后
    AForm: PFormRecord;
    AList: TList;AList := TList.Create;
      
    New(AForm);
    AForm^.FormName := Form1.Name;
    AForm^.ShowForm := self;
    AList.Add(AForm) ;使用时:
    PFormRecord(AList[i])^.ShowForm .ShowModal;
    感觉应该可以这样做!
      

  6.   

    调用Show是可以的,当然任何他们这些东西的共同祖先的属性都可以。
    比如:TForm(AList.Items[0]).Show;
    TForm(AList.Items[1]).CLose;
    看楼主的意思,要保存的都是些Form,那么都可以调用TForm的方法。
      

  7.   

    做是可以做,但是用Tlist来存这些form有什么用呢?实现什么功能?
      

  8.   

    没什么 就是保存一些窗口 必要是显示他们   然后记录最顶层的窗口
    用Forms:array[0..200]of TForm变通了下  TList麻烦