您的位置:首页 > 其它

完美实现tabsheet中融合窗体,不重复创建,并自动切换到已经创建的sheet

2013-06-28 10:26 211 查看
procedure TForm1.btn1Click(Sender: TObject);

 //功能说明  点击时,创建窗口并显示到sheet中,再并点击时如果已经有则不再创建;

    //如果已经有打开的则要切换成当前活动的。项目设置中取消指定窗体的自动创建

 var

        i:Integer;

      begin

           if Application.FindComponent('form2') = nil then //没有创建测开始

                begin

          Application.CreateForm(TForm2,Form2);

                 form2.ManualDock(rzpgcntrl1);

                 Form2.Visible:=true;

                 rzpgcntrl1.ActivePageIndex :=rzpgcntrl1.PageCount-1;

                end

           else

           begin

              for i:=0 to rzpgcntrl1.PageCount-1 do //检索已经打开的sheet并显示

                  begin

                    //ShowMessage(form2.caption);   //测试可以取到值

                    if rzpgcntrl1.Pages[i].caption=form2.caption then

                      begin

                        rzpgcntrl1.ActivePage:=rzpgcntrl1.Pages[i];

                      end;

                  end;

            end;
      end;

如果把这个改成函数调用就更方法了,我改了几次不成功 ,希望高手能将这段改成函数,方法调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息