📄 dockingmegademomain.pas
字号:
end;
procedure TDockingMegaDemoMainForm.dxBarButtonNETViewClick(Sender: TObject);
begin
dxDockingManager1.ViewStyle := vsNET;
BarManager.Style := bmsFlat;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonOffice11ViewClick(Sender: TObject);
begin
dxDockingManager1.ViewStyle := vsOffice11;
BarManager.Style := bmsOffice11;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonXPViewClick(Sender: TObject);
begin
dxDockingManager1.ViewStyle := vsXP;
BarManager.Style := bmsXP;
end;
procedure TDockingMegaDemoMainForm.frSolutionExplorer1TreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
ANode: TTreeNode;
begin
ANode := tvSolutionExplorer.GetNodeAt(X, Y);
if ANode <> nil then
DockControl := TdxCustomDockControl(ANode.Data)
else DockControl := dsHost;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonOnWebClick(Sender: TObject);
begin
Browse(spStart);
end;
procedure TDockingMegaDemoMainForm.dpContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
var
pt: TPoint;
AControl: TdxCustomDockControl;
begin
GetCursorPos(pt);
AControl := dxDockingController.GetDockControlAtPos(pt);
if AControl <> nil then
begin
FPopupMenuDockControl := AControl;
dxBarButtonDockable.Down := FPopupMenuDockControl.Dockable;
dxBarButtonFloating.Down := FPopupMenuDockControl.FloatDockSite <> nil;
dxBarButtonAutoHide.Enabled := FPopupMenuDockControl.CanAutoHide;
dxBarButtonAutoHide.Down := FPopupMenuDockControl.AutoHide;
dxBarPopupMenu1.PopupFromCursorPos;
Handled := True;
end;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonDockableClick(Sender: TObject);
begin
if FPopupMenuDockControl <> nil then
begin
FPopupMenuDockControl.Dockable := (Sender as TdxBarButton).Down;
FPopupMenuDockControl := nil;
end;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonHideClick(Sender: TObject);
begin
if FPopupMenuDockControl <> nil then
begin
FPopupMenuDockControl.Visible := False;
FPopupMenuDockControl := nil;
end;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonFloatingClick(Sender: TObject);
var
pt: TPoint;
begin
if (FPopupMenuDockControl <> nil) and (FPopupMenuDockControl.DockState <> dsFloating) then
begin
GetCursorPos(pt);
FPopupMenuDockControl.MakeFloating(pt.X, pt.Y);
FPopupMenuDockControl := nil;
end;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonAutoHideClick(Sender: TObject);
begin
if FPopupMenuDockControl <> nil then
begin
FPopupMenuDockControl.AutoHide := (Sender as TdxBarButton).Down;
FPopupMenuDockControl := nil;
end;
end;
procedure TDockingMegaDemoMainForm.FormShow(Sender: TObject);
begin
DockControl := dsHost;
UpdateSolutionTV;
UpdateClassViewTV;
ComboBox1.Align := alClient;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonLoadClick(Sender: TObject);
begin
if OpenDialog1.Execute then
dxDockingManager1.LoadLayoutFromIniFile(OpenDialog1.FileName);
end;
procedure TDockingMegaDemoMainForm.dxBarButtonSaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
dxDockingManager1.SaveLayoutToIniFile(SaveDialog1.FileName);
end;
procedure TDockingMegaDemoMainForm.dxDockingManager1LayoutChanged(Sender: TdxCustomDockControl);
begin
UpdateSolutionTV;
end;
procedure TDockingMegaDemoMainForm.SetDockControl(const Value: TdxCustomDockControl);
begin
if FDockControl <> Value then
begin
FDockControl := Value;
UpdateProperties;
end;
end;
procedure TDockingMegaDemoMainForm.ApplyProperties;
var
ADockTypes: TdxDockingTypes;
ACaptionButtons: TdxCaptionButtons;
begin
if (FDockControl = nil) or (csDestroying in FDockControl.ComponentState) then exit;
FDockControl.ManagerColor := cbManagerColor.Checked;
FDockControl.ManagerFont := cbManagerFont.Checked;
FDockControl.Caption := eCaption.Text;
FDockControl.ShowCaption := cbShowCaption.Checked;
ACaptionButtons := [];
if cbShowCloseButton.Checked then
ACaptionButtons := ACaptionButtons + [cbClose];
if cbShowMaxButton.Checked then
ACaptionButtons := ACaptionButtons + [cbMaximize];
if cbShowHideButton.Checked then
ACaptionButtons := ACaptionButtons + [cbHide];
FDockControl.CaptionButtons := ACaptionButtons;
ADockTypes := [];
if cbAllowDockLeft.Checked then ADockTypes := ADockTypes + [dtLeft];
if cbAllowDockTop.Checked then ADockTypes := ADockTypes + [dtTop];
if cbAllowDockRight.Checked then ADockTypes := ADockTypes + [dtRight];
if cbAllowDockBottom.Checked then ADockTypes := ADockTypes + [dtBottom];
if cbAllowDockClient.Checked then ADockTypes := ADockTypes + [dtClient];
FDockControl.AllowDock := ADockTypes;
FDockControl.AllowFloating := cbAllowFloating.Checked;
ADockTypes := [];
if cbAllowDockClientsLeft.Checked then ADockTypes := ADockTypes + [dtLeft];
if cbAllowDockClientsTop.Checked then ADockTypes := ADockTypes + [dtTop];
if cbAllowDockClientsRight.Checked then ADockTypes := ADockTypes + [dtRight];
if cbAllowDockClientsBottom.Checked then ADockTypes := ADockTypes + [dtBottom];
if cbAllowDockClientsClient.Checked then ADockTypes := ADockTypes + [dtClient];
FDockControl.AllowDockClients := ADockTypes;
if FDockControl is TdxTabContainerDockSite then
begin
if cbTabsOnTop.Checked then
(FDockControl as TdxTabContainerDockSite).TabsPosition := tctpTop
else (FDockControl as TdxTabContainerDockSite).TabsPosition := tctpBottom;
(FDockControl as TdxTabContainerDockSite).TabsScroll := cbTabsScrollable.Checked;
end;
end;
procedure TDockingMegaDemoMainForm.UpdateProperties;
begin
if (FDockControl <> nil) and not (csDestroying in FDockControl.ComponentState) then
begin
cbManagerColor.Enabled := True;
cbManagerColor.Checked := FDockControl.ManagerColor;
cbManagerFont.Enabled := True;
cbManagerFont.Checked := FDockControl.ManagerFont;
eCaption.Enabled := True;
eCaption.Text := FDockControl.Caption;
cbShowCaption.Enabled := True;
cbShowCaption.Checked := FDockControl.ShowCaption;
cbShowCloseButton.Enabled := True;
cbShowCloseButton.Checked := cbClose in FDockControl.CaptionButtons;
cbShowMaxButton.Enabled := True;
cbShowMaxButton.Checked := cbMaximize in FDockControl.CaptionButtons;
cbShowHideButton.Enabled := True;
cbShowHideButton.Checked := cbHide in FDockControl.CaptionButtons;
cbAllowDockLeft.Enabled := True;
cbAllowDockLeft.Checked := dtLeft in FDockControl.AllowDock;
cbAllowDockTop.Enabled := True;
cbAllowDockTop.Checked := dtTop in FDockControl.AllowDock;
cbAllowDockRight.Enabled := True;
cbAllowDockRight.Checked := dtRight in FDockControl.AllowDock;
cbAllowDockBottom.Enabled := True;
cbAllowDockBottom.Checked := dtBottom in FDockControl.AllowDock;
cbAllowDockClient.Enabled := True;
cbAllowDockClient.Checked := dtClient in FDockControl.AllowDock;
cbAllowFloating.Enabled := True;
cbAllowFloating.Checked := FDockControl.AllowFloating;
cbAllowDockClientsLeft.Enabled := True;
cbAllowDockClientsLeft.Checked := dtLeft in FDockControl.AllowDockClients;
cbAllowDockClientsTop.Enabled := True;
cbAllowDockClientsTop.Checked := dtTop in FDockControl.AllowDockClients;
cbAllowDockClientsRight.Enabled := True;
cbAllowDockClientsRight.Checked := dtRight in FDockControl.AllowDockClients;
cbAllowDockClientsBottom.Enabled := True;
cbAllowDockClientsBottom.Checked := dtBottom in FDockControl.AllowDockClients;
cbAllowDockClientsClient.Enabled := True;
cbAllowDockClientsClient.Checked := dtClient in FDockControl.AllowDockClients;
if FDockControl is TdxTabContainerDockSite then
begin
cbTabsOnTop.Enabled := True;
cbTabsOnTop.Checked := (FDockControl as TdxTabContainerDockSite).TabsPosition = tctpTop;
cbTabsScrollable.Enabled := True;
cbTabsScrollable.Checked := (FDockControl as TdxTabContainerDockSite).TabsScroll;
end
else
begin
cbTabsOnTop.Enabled := False;
cbTabsScrollable.Enabled := False;
end;
btnApply.Enabled := True;
btnCancel.Enabled := True;
end
else DisableProperties;
end;
procedure TDockingMegaDemoMainForm.DisableProperties;
begin
cbManagerColor.Checked := False;
cbManagerColor.Enabled := False;
cbManagerFont.Checked := False;
cbManagerFont.Enabled := False;
eCaption.Text := '';
eCaption.Enabled := False;
cbShowCaption.Checked := False;
cbShowCaption.Enabled := False;
cbShowCloseButton.Checked := False;
cbShowCloseButton.Enabled := False;
cbShowMaxButton.Checked := False;
cbShowMaxButton.Enabled := False;
cbShowHideButton.Checked := False;
cbShowHideButton.Enabled := False;
cbAllowDockLeft.Checked := False;
cbAllowDockLeft.Enabled := False;
cbAllowDockTop.Checked := False;
cbAllowDockTop.Enabled := False;
cbAllowDockRight.Checked := False;
cbAllowDockRight.Enabled := False;
cbAllowDockBottom.Checked := False;
cbAllowDockBottom.Enabled := False;
cbAllowDockClient.Checked := False;
cbAllowDockClient.Enabled := False;
cbAllowFloating.Checked := False;
cbAllowFloating.Enabled := False;
cbAllowDockClientsLeft.Checked := False;
cbAllowDockClientsLeft.Enabled := False;
cbAllowDockClientsTop.Checked := False;
cbAllowDockClientsTop.Enabled := False;
cbAllowDockClientsRight.Checked := False;
cbAllowDockClientsRight.Enabled := False;
cbAllowDockClientsBottom.Checked := False;
cbAllowDockClientsBottom.Enabled := False;
cbAllowDockClientsClient.Checked := False;
cbAllowDockClientsClient.Enabled := False;
cbTabsOnTop.Checked := False;
cbTabsOnTop.Enabled := False;
cbTabsScrollable.Checked := False;
cbTabsScrollable.Enabled := False;
btnApply.Enabled := False;
btnCancel.Enabled := False;
end;
procedure TDockingMegaDemoMainForm.btnApplyClick(Sender: TObject);
begin
ApplyProperties;
UpdateProperties;
end;
procedure TDockingMegaDemoMainForm.btnCancelClick(Sender: TObject);
begin
UpdateProperties;
end;
procedure TDockingMegaDemoMainForm.tvSolutionExplorerChange(Sender: TObject;
Node: TTreeNode);
begin
Node := tvSolutionExplorer.Selected;
if Node <> nil then
DockControl := TdxCustomDockControl(Node.Data)
else DockControl := dsHost;
end;
procedure TDockingMegaDemoMainForm.FormCreate(Sender: TObject);
begin
dmCommonData.AboutFormClass := TDockingMegaDemoAboutForm;
{$IFDEF DELPHI5}
dpStartPage.OnContextPopup := dpContextPopup;
dpProperties.OnContextPopup := dpContextPopup;
dpSolutionExplorer.OnContextPopup := dpContextPopup;
dpClassView.OnContextPopup := dpContextPopup;
dpOutput.OnContextPopup := dpContextPopup;
dpCallStack.OnContextPopup := dpContextPopup;
dpWatch.OnContextPopup := dpContextPopup;
dpToolbox.OnContextPopup := dpContextPopup;
{$ENDIF}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -