我想动态添加tabsheet,里面再加载一个子窗体,问题来了,procedure TFrm.Button5Click(Sender: TObject);
 var F:TFrmChild;
begin
 F:=TFrmChild.Create(Self);
 F.Parent:=tabsheet1;//加载在一个选项卡内
 F.Left:=0;
 F.Top:=0;
 F.Show;
end;
这样,这个容器内的f窗体在程序里面如何访问?有N个的时候怎么办?

解决方案 »

  1.   

    可以通过全局变量访问,可以通过窗口句柄访问、也可以通过TFrm的components访问、
    最简单是把F变量放到TFrm的public里,
    多个F的话就变通一下,F只是个指针,并没有多复杂
      

  2.   

    tabsheet1.Components[0] as TFrmChild 
      

  3.   


    procedure TFrmSpedit.Button6Click(Sender: TObject);
    var L:TFrmChild;
    begin
     l:=tabsheet1.Controls[0]   as TFrmChild ;
     l.Label8.Caption  :='111111';
    end;这样可以,
    l:=tabsheet1.Components[0] as TFrmChild ;这样就报错,
    谢谢了
      

  4.   

    “我想动态添加tabsheet,里面再加载一个子窗体”这样也可以~~?