![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
代码procedure ShowDockForm(FormClass: TFormClass; dockCtrl: TWinControl;
IsMaxed: Boolean);
procedure ShowCaption(ParentCtrl:TWinControl;ACaption:string);
begin
if ParentCtrl is TRzTabSheet then
TRzTabSheet(ParentCtrl).Caption := ACaption;
end;
var
i: Integer;
TabCtrl:TRzTabSheet;
Form:TForm;
begin
Screen.Cursor := crHourGlass;
try
for i := 0 to Screen.CustomFormCount - 1 do
if Screen.CustomForms[i] is FormClass then
begin
if (not (Screen.CustomForms[i]).Visible) then
(Screen.CustomForms[i]).Visible := True;
(Screen.CustomForms[i]).BringToFront;
(Screen.CustomForms[i]).SetFocus;
TabCtrl := TRzTabSheet(Screen.CustomForms[i].Parent);
ShowCaption(TabCtrl,Screen.CustomForms[i].Caption);
TRzPageControl(dockCtrl).ActivePageIndex := TabCtrl.PageIndex;
exit;
end;
TabCtrl := TRzTabSheet.Create(dockCtrl); //dockCtrl
TabCtrl.PageControl := TRzPageControl(dockCtrl);
TRzPageControl(dockCtrl).ActivePageIndex := TabCtrl.PageIndex;
Form := FormClass.Create(TabCtrl);
with Form do
try
ManualDock(TabCtrl);
ShowCaption(TabCtrl,Caption);
Show;
Form.WindowState := wsMaximized;
Form.Align := alClient;
except
Free;
end;
finally
Screen.Cursor := crDefault;
end;
end;