📄 dockingmegademomain.pas
字号:
unit DockingMegaDemoMain;
{$I ..\cxVer.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, dxDockPanel, Menus, StdCtrls, ExtCtrls, ImgList,
Clipbrd, dxBar, ActnList, dxDockControl, StdActns, dxBarExtItems, dxsbar,
cxClasses, EBarsUtils;
type
TDockingMegaDemoMainForm = class(TForm)
dsHost: TdxDockSite;
dpStartPage: TdxDockPanel;
dpOutput: TdxDockPanel;
dpToolbox: TdxDockPanel;
dxDockingManager1: TdxDockingManager;
dpProperties: TdxDockPanel;
dxLayoutDockSite1: TdxLayoutDockSite;
dpClassView: TdxDockPanel;
dxLayoutDockSite4: TdxLayoutDockSite;
dxLayoutDockSite2: TdxLayoutDockSite;
dpCallStack: TdxDockPanel;
dxTabContainerDockSite1: TdxTabContainerDockSite;
dpSolutionExplorer: TdxDockPanel;
dxTabContainerDockSite2: TdxTabContainerDockSite;
dpWatch: TdxDockPanel;
BarManager: TdxBarManager;
dxBarButtonLoad: TdxBarLargeButton;
dxBarButtonSave: TdxBarLargeButton;
dxBarSubItemFile: TdxBarSubItem;
dxBarSubItemInsert: TdxBarSubItem;
dxBarSubItemFormat: TdxBarSubItem;
dxBarSubItemWindow: TdxBarSubItem;
dxBarButtonExit: TdxBarLargeButton;
dxBarSubItemHelp: TdxBarSubItem;
imBarIcons: TImageList;
dxBarButtonToolBox: TdxBarLargeButton;
dxBarButtonWatch: TdxBarLargeButton;
dxBarButtonOutput: TdxBarLargeButton;
dxBarButtonCallStack: TdxBarLargeButton;
dxBarButtonProperties: TdxBarLargeButton;
dxBarButtonClassView: TdxBarLargeButton;
dxBarButtonSolutionExplorer: TdxBarLargeButton;
dxBarButtonFont: TdxBarLargeButton;
dxBarButtonColor: TdxBarLargeButton;
dxBarButtonStandardView: TdxBarLargeButton;
dxBarButtonNETView: TdxBarLargeButton;
dxBarButtonXPView: TdxBarLargeButton;
dxBarSubItemOtherWindows: TdxBarSubItem;
ColorDialog1: TColorDialog;
FontDialog1: TFontDialog;
ilDockIcons: TImageList;
dxBarPopupMenu1: TdxBarPopupMenu;
dxBarButtonDockable: TdxBarButton;
dxBarButtonHide: TdxBarButton;
dxBarButtonFloating: TdxBarButton;
dxBarButtonAutoHide: TdxBarButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
dxLayoutDockSite3: TdxLayoutDockSite;
dxBarButtonStartPage: TdxBarLargeButton;
dxBarButtonOffice11View: TdxBarLargeButton;
dxBarButton1: TdxBarLargeButton;
dxBarButton2: TdxBarLargeButton;
dxBarButton3: TdxBarLargeButton;
dxBarButton4: TdxBarLargeButton;
dxBarButton5: TdxBarLargeButton;
dxBarButton6: TdxBarLargeButton;
dxBarButton7: TdxBarLargeButton;
ilDisabledImages: TImageList;
ilHotImages: TImageList;
ListView1: TListView;
Memo1: TMemo;
Panel1: TPanel;
ComboBox1: TComboBox;
ListView2: TListView;
tvSolutionExplorer: TTreeView;
tvClassView: TTreeView;
iComponentsIcons: TImageList;
dxSideBar1: TdxSideBar;
ScrollBox1: TScrollBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
cbManagerColor: TCheckBox;
cbManagerFont: TCheckBox;
eCaption: TEdit;
cbShowCaption: TCheckBox;
cbShowCloseButton: TCheckBox;
cbShowMaxButton: TCheckBox;
cbShowHideButton: TCheckBox;
cbAllowDockLeft: TCheckBox;
cbAllowDockTop: TCheckBox;
cbAllowDockClient: TCheckBox;
cbAllowFloating: TCheckBox;
cbAllowDockBottom: TCheckBox;
cbAllowDockRight: TCheckBox;
cbAllowDockClientsLeft: TCheckBox;
cbAllowDockClientsTop: TCheckBox;
cbAllowDockClientsClient: TCheckBox;
cbAllowDockClientsBottom: TCheckBox;
cbAllowDockClientsRight: TCheckBox;
cbTabsOnTop: TCheckBox;
cbTabsScrollable: TCheckBox;
Panel2: TPanel;
Image2: TImage;
Panel3: TPanel;
Label4: TLabel;
Image3: TImage;
Image4: TImage;
Label5: TLabel;
Panel4: TPanel;
btnApply: TButton;
btnCancel: TButton;
dxVertContainerDockSite1: TdxVertContainerDockSite;
Panel5: TPanel;
Image1: TImage;
dxBarLargeButton1: TdxBarLargeButton;
dxBarLargeButton2: TdxBarLargeButton;
procedure dxBarButtonExitClick(Sender: TObject);
procedure dxBarButtonSolutionExplorerClick(Sender: TObject);
procedure dxBarButtonClassViewClick(Sender: TObject);
procedure dxBarButtonPropertiesClick(Sender: TObject);
procedure dxBarButtonToolBoxClick(Sender: TObject);
procedure dxBarButtonCallStackClick(Sender: TObject);
procedure dxBarButtonOutputClick(Sender: TObject);
procedure dxBarButtonFontClick(Sender: TObject);
procedure dxBarButtonColorClick(Sender: TObject);
procedure dxBarButtonStandardViewClick(Sender: TObject);
procedure dxBarButtonNETViewClick(Sender: TObject);
procedure dxBarButtonXPViewClick(Sender: TObject);
procedure frSolutionExplorer1TreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure dxBarButtonOnWebClick(Sender: TObject);
procedure dxBarButtonWatchClick(Sender: TObject);
procedure dpContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
procedure dxBarButtonDockableClick(Sender: TObject);
procedure dxBarButtonHideClick(Sender: TObject);
procedure dxBarButtonFloatingClick(Sender: TObject);
procedure dxBarButtonAutoHideClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure dxBarButtonLoadClick(Sender: TObject);
procedure dxBarButtonSaveClick(Sender: TObject);
procedure dxBarButtonStartPageClick(Sender: TObject);
procedure dxBarButtonOffice11ViewClick(Sender: TObject);
procedure dxDockingManager1LayoutChanged(Sender: TdxCustomDockControl);
procedure btnApplyClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure tvSolutionExplorerChange(Sender: TObject; Node: TTreeNode);
procedure FormCreate(Sender: TObject);
private
FDockControl: TdxCustomDockControl;
procedure SetDockControl(const Value: TdxCustomDockControl);
procedure ApplyProperties;
procedure UpdateProperties;
procedure DisableProperties;
private
FPopupMenuDockControl: TdxCustomDockControl;
procedure UpdateSolutionTV;
procedure UpdateClassViewTV;
property DockControl: TdxCustomDockControl read FDockControl write SetDockControl;
end;
var
DockingMegaDemoMainForm: TDockingMegaDemoMainForm;
implementation
uses
DockingMegaDemoAbout, EBarsDemoRating;
{$R *.dfm}
procedure TDockingMegaDemoMainForm.UpdateSolutionTV;
procedure CheckSite(AControl: TdxCustomDockControl; ANode: TTreeNode);
var
I: Integer;
AChild: TTreeNode;
ANodeName: string;
begin
if AControl.Name <> '' then
ANodeName := AControl.Name
else ANodeName := AControl.ClassName;
AChild := tvSolutionExplorer.Items.AddChildObject(ANode, ANodeName, AControl);
AChild.StateIndex := AControl.ImageIndex;
for I := 0 to AControl.ChildCount - 1 do
CheckSite(AControl.Children[I], AChild);
end;
var
I: Integer;
begin
if not tvSolutionExplorer.HandleAllocated then exit;
tvSolutionExplorer.Items.BeginUpdate;
try
tvSolutionExplorer.Items.Clear;
CheckSite(dsHost, nil);
tvSolutionExplorer.FullExpand;
finally
tvSolutionExplorer.Items.EndUpdate;
end;
tvSolutionExplorer.Selected := nil;
for I := 0 to tvSolutionExplorer.Items.Count - 1 do
if TdxCustomDockControl(tvSolutionExplorer.Items[I].Data) = DockControl then
tvSolutionExplorer.Selected := tvSolutionExplorer.Items[I];
UpdateProperties;
end;
procedure TDockingMegaDemoMainForm.UpdateClassViewTV;
var
ANode: TTreeNode;
begin
if not tvClassView.HandleAllocated then Exit;
tvClassView.Items.BeginUpdate;
try
tvClassView.Items.Clear;
ANode := tvClassView.Items.AddChild(nil, 'TdxCustomDockControl');
ANode := tvClassView.Items.AddChild(ANode, 'TdxCustomDockSite');
tvClassView.Items.AddChild(ANode, 'TdxLayoutDockSite');
ANode := tvClassView.Items.AddChild(ANode, 'TdxContainerDockSite');
tvClassView.Items.AddChild(ANode, 'TdxTabContainerDockSite');
ANode := tvClassView.Items.AddChild(ANode, 'TdxSideContainerDockSite');
tvClassView.Items.AddChild(ANode, 'TdxHorizContainerDockSite');
tvClassView.Items.AddChild(ANode, 'TdxVertContainerDockSite');
tvClassView.Items.AddChild(tvClassView.Items[1], 'TdxFloatDockSite');
tvClassView.Items.AddChild(tvClassView.Items[1], 'TdxDockSite');
tvClassView.Items.AddChild(tvClassView.Items[0], 'TdxDockPanel');
tvClassView.FullExpand;
finally
tvClassView.Items.EndUpdate;
end;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonExitClick(Sender: TObject);
begin
Close;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonStartPageClick(Sender: TObject);
begin
if (dpStartPage = nil) then exit;
if not dpStartPage.Visible then
dpStartPage.Visible := True;
dxDockingController.ActiveDockControl := dpStartPage;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonSolutionExplorerClick(Sender: TObject);
begin
if (dpSolutionExplorer = nil) then exit;
if not dpSolutionExplorer.Visible then
dpSolutionExplorer.Visible := True;
dxDockingController.ActiveDockControl := dpSolutionExplorer;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonClassViewClick(Sender: TObject);
begin
if (dpClassView = nil) then exit;
if not dpClassView.Visible then
dpClassView.Visible := True;
dxDockingController.ActiveDockControl := dpClassView;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonPropertiesClick(Sender: TObject);
begin
if (dpProperties = nil) then exit;
if not dpProperties.Visible then
dpProperties.Visible := True;
dxDockingController.ActiveDockControl := dpProperties;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonToolBoxClick(Sender: TObject);
begin
if (dpToolbox = nil) then exit;
if not dpToolbox.Visible then
dpToolbox.Visible := True;
dxDockingController.ActiveDockControl := dpToolbox;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonCallStackClick(Sender: TObject);
begin
if (dpCallStack = nil) then exit;
if not dpCallStack.Visible then
dpCallStack.Visible := True;
dxDockingController.ActiveDockControl := dpCallStack;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonOutputClick(Sender: TObject);
begin
if (dpOutput = nil) then exit;
if not dpOutput.Visible then
dpOutput.Visible := True;
dxDockingController.ActiveDockControl := dpOutput;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonWatchClick(Sender: TObject);
begin
if (dpWatch = nil) then exit;
if not dpWatch.Visible then
dpWatch.Visible := True;
dxDockingController.ActiveDockControl := dpWatch;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonFontClick(Sender: TObject);
begin
FontDialog1.Font := dxDockingManager1.Font;
if FontDialog1.Execute then
dxDockingManager1.Font := FontDialog1.Font;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonColorClick(Sender: TObject);
begin
ColorDialog1.Color := dxDockingManager1.Color;
if ColorDialog1.Execute then
dxDockingManager1.Color := ColorDialog1.Color;
end;
procedure TDockingMegaDemoMainForm.dxBarButtonStandardViewClick(Sender: TObject);
begin
dxDockingManager1.ViewStyle := vsStandard;
BarManager.Style := bmsStandard;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -