1. 程式人生 > >完美實現tabsheet中融合窗體,不重複建立,並自動切換到已經建立的sheet

完美實現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;


如果把這個改成函式呼叫就更方法了,我改了幾次不成功 ,希望高手能將這段改成函式,方法呼叫