⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampledockingmain.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit SampleDockingMain;

{$I ..\cxVer.inc}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, dxDockControl, dxDockPanel, dxBar, StdCtrls, ExtCtrls, ImgList,
  ActnList, ShellAPI, cxControls, dxBarExtItems, dxStatusBar, ComCtrls,
  cxGraphics, EBarsUtils;

type
  TFormClass = class of TForm;
  PPersistInfo = ^TPersistInfo;
  TPersistInfo = record
    WinControl: TWinControl;
    SpecInfo: Integer;
  end;
  PRichEditSelInfo =^ TRichEditSelInfo;
  TRichEditSelInfo = record
    SelStart: Integer;
    SelLength: Integer;
  end;

  TSampleDockingMainForm = class(TForm)
    dxDockingManager: TdxDockingManager;
    DockSite1: TdxDockSite;
    BarManager: TdxBarManager;
    dxBarButtonExit: TdxBarButton;
    dxBarButtonStandardView: TdxBarButton;
    dxBarButtonNETView: TdxBarButton;
    dxBarButtonOffice11View: TdxBarButton;
    dxBarButtonXPView: TdxBarButton;
    dxBarButton1: TdxBarLargeButton;
    dxBarButton2: TdxBarLargeButton;
    dxBarButton3: TdxBarLargeButton;
    dxBarButton4: TdxBarLargeButton;
    dxBarButton5: TdxBarLargeButton;
    dxBarButton6: TdxBarLargeButton;
    dxBarButton7: TdxBarLargeButton;
    imBarIcons: TImageList;
    dxBarSubItem1: TdxBarSubItem;
    dxBarSubItem2: TdxBarSubItem;
    dxBarSubItem3: TdxBarSubItem;
    dxBarButton8: TdxBarButton;
    dxBarButton9: TdxBarButton;
    dxBarButton10: TdxBarButton;
    dxBarButton11: TdxBarButton;
    dxBarButton12: TdxBarButton;
    dxBarButton13: TdxBarButton;
    dxBarButton14: TdxBarButton;
    dxBarButton15: TdxBarButton;
    dxBarButton16: TdxBarButton;
    dxBarSubItem4: TdxBarSubItem;
    dxBarButton17: TdxBarButton;
    lbDescription: TLabel;
    dxBarButton18: TdxBarButton;
    dxBarButton19: TdxBarButton;
    dxBarButton20: TdxBarButton;
    dxBarPopupMenu: TdxBarPopupMenu;
    dxBarButtonDockable: TdxBarButton;
    dxBarButton22: TdxBarButton;
    dxBarButtonAutoHide: TdxBarButton;
    dxBarButtonFloating: TdxBarButton;
    ilDockPanels: TImageList;
    ilDisabledImages: TImageList;
    ilHotImages: TImageList;
    dxBarLargeButton1: TdxBarLargeButton;
    dxBarLargeButton2: TdxBarLargeButton;
    dxStatusBar: TdxStatusBar;
    procedure SchemeClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure dxBarButton12Click(Sender: TObject);
    procedure dxBarButtonExitClick(Sender: TObject);
    procedure actRateDemoExecute(Sender: TObject);
    procedure dxBarButton13Click(Sender: TObject);
    procedure dxBarButton17Click(Sender: TObject);
    procedure dxBarButton16Click(Sender: TObject);
    procedure dxBarButton14Click(Sender: TObject);
    procedure dxBarButton15Click(Sender: TObject);
    procedure dxBarButton18Click(Sender: TObject);
    procedure dxBarButton19Click(Sender: TObject);
    procedure dxBarButtonDockableClick(Sender: TObject);
    procedure dxBarButton22Click(Sender: TObject);
    procedure dxBarButtonFloatingClick(Sender: TObject);
    procedure dxBarButtonAutoHideClick(Sender: TObject);
    procedure ShowDockControl(Sender: TdxDockSite; AControl: TdxCustomDockControl);
    procedure HideDockControl(Sender: TdxDockSite; AControl: TdxCustomDockControl);
    procedure FormCreate(Sender: TObject);
  private
    FTreeViewFrameCount, FDockingRichTextFrameCount, FRadioGroupFrameCount, FListBoxFrameCount: Integer;
    FPopupMenuDockControl: TdxCustomDockControl;
    procedure StartDock(Sender: TdxCustomDockControl; X, Y: Integer);
    procedure EndDock(Sender: TdxCustomDockControl; Zone: TdxZone; X, Y: Integer);
    {$IFDEF DELPHI5}
    procedure dpContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
    {$ENDIF}
    procedure HookupEvents(Sender: TdxCustomDockControl);
    procedure CreateTabContainer(Sender: TdxCustomDockControl; ATabContainer: TdxTabContainerDockSite);
    procedure CreateSiteContainer(Sender: TdxCustomDockControl; ASideContainer: TdxSideContainerDockSite);
    procedure CreateFloatSite(Sender: TdxCustomDockControl; AFloatSite: TdxFloatDockSite);
    procedure AutoHideChanged(Sender: TdxCustomDockControl);
    procedure AutoHideChanging(Sender: TdxCustomDockControl);
    procedure ClearContent;
    procedure SetPanelsVisibility(AVisible: Boolean);
    procedure CreateScheme1;
    procedure CreateScheme2;
    procedure CreateScheme3;
    procedure CreateScheme4;
    procedure CreateScheme5;
    procedure CreateFrame(AFrameClass: TFormClass; AOwner: TdxDockPanel);
  end;

var
  SampleDockingMainForm: TSampleDockingMainForm;

implementation

uses SampleDockingContainers, EBarsDemoRating, SampleDockingAbout,
  SampleDockingRichText, SampleDockingRadioGroup, SampleDockingTreeView,
  SampleDockingListBox;

{$R *.dfm}
{$R windowsxp.res}

function GetFocusedControl(AWinControl: TWinControl): TWinControl;
var
  i: Integer;
begin
  Result := nil;
  for i:=0 to AWinControl.ControlCount - 1 do
    if AWinControl.Controls[i] is TWinControl then
    begin
      Result := GetFocusedControl(TWinControl(AWinControl.Controls[i]));
      if Result <> nil then Exit;
      if TWinControl(AWinControl.Controls[i]).Focused then
      begin
        Result := TWinControl(AWinControl.Controls[i]);
        Exit;
      end;
    end;
end;

procedure TSampleDockingMainForm.HookupEvents(Sender: TdxCustomDockControl);
begin
  if Sender is TdxDockSite then
  begin
    TdxDockSite(Sender).OnShowControl := ShowDockControl;
    TdxDockSite(Sender).OnHideControl := HideDockControl;
  end;
  Sender.OnAutoHideChanged := AutoHideChanged;
  Sender.OnAutoHideChanging := AutoHideChanging;
  {$IFDEF DELPHI5}
  Sender.OnContextPopup := dpContextPopup;
  {$ENDIF}
  Sender.OnEndDocking := EndDock;
  Sender.OnStartDocking := StartDock;
  Sender.OnCreateTabContainer := CreateTabContainer;
  Sender.OnCreateSideContainer := CreateSiteContainer;
  Sender.OnCreateFloatSite := CreateFloatSite;
end;

procedure TSampleDockingMainForm.CreateFloatSite(
  Sender: TdxCustomDockControl; AFloatSite: TdxFloatDockSite);
begin
  HookupEvents(AFloatSite);
end;

procedure TSampleDockingMainForm.CreateTabContainer(
  Sender: TdxCustomDockControl; ATabContainer: TdxTabContainerDockSite);
begin
  HookupEvents(ATabContainer);
end;

procedure TSampleDockingMainForm.CreateSiteContainer(
  Sender: TdxCustomDockControl; ASideContainer: TdxSideContainerDockSite);
begin
  HookupEvents(ASideContainer);
end;

procedure TSampleDockingMainForm.CreateScheme1;
var
  Panel, Panel1, Panel2: TdxDockPanel;
begin
  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.Height := 360;
  Panel1.DockTo(DockSite1, dtBottom, 0);
  CreateFrame(TSampleDockingListBoxFrame, Panel1);

  Panel2 := TdxDockPanel.Create(Self);
  HookupEvents(Panel2);
  Panel2.DockTo(Panel1, dtClient, 1);
  CreateFrame(TSampleDockingRadioGroupFrame, Panel2);

  Panel := TdxDockPanel.Create(Self);
  HookupEvents(Panel);
  Panel.DockTo(Panel2.TabContainer, dtTop, 0);
  CreateFrame(TSampleDockingTreeViewFrame, Panel);

  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.DockTo(Panel, dtClient, 0);
  CreateFrame(TSampleDockingRichTextFrame, Panel1);
end;

procedure TSampleDockingMainForm.CreateScheme2;
var
  Panel, Panel1, Panel2: TdxDockPanel;
begin
  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.Height := 300;
  Panel1.DockTo(DockSite1, dtRight, 0);
  CreateFrame(TSampleDockingTreeViewFrame, Panel1);

  Panel2 := TdxDockPanel.Create(Self);
  HookupEvents(Panel2);
  Panel2.DockTo(Panel1, dtClient, 1);
  CreateFrame(TSampleDockingRichTextFrame, Panel2);

  Panel := TdxDockPanel.Create(Self);
  HookupEvents(Panel);
  Panel.DockTo(Panel1, dtLeft, 0);
  CreateFrame(TSampleDockingRadioGroupFrame, Panel);
end;

procedure TSampleDockingMainForm.CreateScheme3;
var
  Panel1, Panel2, Panel3, Panel4: TdxDockPanel;
begin
  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.DockTo(DockSite1, dtLeft, 0);
  Panel1.AutoHide := True;
  CreateFrame(TSampleDockingRichTextFrame, Panel1);

  Panel2 := TdxDockPanel.Create(Self);
  HookupEvents(Panel2);
  Panel2.Height := 170;
  Panel2.DockTo(DockSite1, dtTop, 0);
  Panel2.AutoHide := True;
  CreateFrame(TSampleDockingRadioGroupFrame, Panel2);

  Panel3 := TdxDockPanel.Create(Self);
  HookupEvents(Panel3);
  Panel3.DockTo(DockSite1, dtRight, 0);
  Panel3.AutoHide := True;
  CreateFrame(TSampleDockingTreeViewFrame, Panel3);

  Panel4 := TdxDockPanel.Create(Self);
  HookupEvents(Panel4);
  Panel4.Height := 190;
  Panel4.DockTo(DockSite1, dtBottom, 0);
  Panel4.AutoHide := True;
  CreateFrame(TSampleDockingListBoxFrame, Panel4);
end;

procedure TSampleDockingMainForm.CreateScheme4;
var
  Panel1, Panel2: TdxDockPanel;
begin
  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.MakeFloating(Left + 50, Top + 100);
  CreateFrame(TSampleDockingTreeViewFrame, Panel1);

  Panel2 := TdxDockPanel.Create(Self);
  HookupEvents(Panel2);
  Panel2.DockTo(Panel1, dtClient, 0);
  CreateFrame(TSampleDockingRichTextFrame, Panel2);
end;

procedure TSampleDockingMainForm.CreateScheme5;
var
  Panel1, Panel2, Panel3: TdxDockPanel;
begin
  Panel1 := TdxDockPanel.Create(Self);
  HookupEvents(Panel1);
  Panel1.Height := 350;
  Panel1.DockTo(DockSite1, dtBottom, 0);
  CreateFrame(TSampleDockingListBoxFrame, Panel1);

  Panel2 := TdxDockPanel.Create(Self);
  HookupEvents(Panel2);
  Panel2.DockTo(Panel1, dtRight, 1);
  CreateFrame(TSampleDockingTreeViewFrame, Panel2);

  Panel3 := TdxDockPanel.Create(Self);
  HookupEvents(Panel3);
  Panel3.DockTo(Panel1, dtTop, 0);
  CreateFrame(TSampleDockingRichTextFrame, Panel3);
end;

procedure TSampleDockingMainForm.SchemeClick(Sender: TObject);
begin
  case TComponent(Sender).Tag of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -