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

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;


如果把这个改成函数调用就更方法了,我改了几次不成功 ,希望高手能将这段改成函数,方法调用

猜你喜欢

转载自blog.csdn.net/ttpage/article/details/9194409