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

📄 sampledockingmain.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    0: CreateScheme1;
    1: CreateScheme2;
    2: CreateScheme3;
    3: CreateScheme4;
    4: CreateScheme5;
  end;
end;

procedure TSampleDockingMainForm.ClearContent;
var
  Count: Integer;
begin
  Count := dxDockingController.DockControlCount - 1;
  while Count >= 0 do
  begin
    if dxDockingController.DockControls[Count] is TdxDockPanel then
      dxDockingController.DockControls[Count].Free;
    if (dxDockingController.DockControlCount - 1) < (Count - 1) then
      Count := dxDockingController.DockControlCount - 1 else
    Dec(Count);
  end;
  FTreeViewFrameCount := 0;
  FDockingRichTextFrameCount := 0;
  FRadioGroupFrameCount := 0;
  FListBoxFrameCount := 0;
end;

procedure TSampleDockingMainForm.FormDestroy(Sender: TObject);
begin
  ClearContent;
end;

procedure TSampleDockingMainForm.dxBarButton12Click(Sender: TObject);
begin
  ClearContent;
end;

procedure TSampleDockingMainForm.dxBarButtonExitClick(Sender: TObject);
begin
  Close;
end;

procedure TSampleDockingMainForm.actRateDemoExecute(Sender: TObject);
begin
  with TEBarsDemoRatingForm.Create(Self) do
    try
      ShowModal;
    finally
      Free;
    end;
end;

procedure TSampleDockingMainForm.dxBarButton13Click(Sender: TObject);
begin
  BarManager.Style := bmsStandard;
  dxDockingManager.ViewStyle := vsStandard;
  dxStatusBar.PaintStyle := stpsStandard;
end;

procedure TSampleDockingMainForm.dxBarButton17Click(Sender: TObject);
begin
  BarManager.Style := bmsFlat;
  dxDockingManager.ViewStyle := vsNET;
  dxStatusBar.PaintStyle := stpsFlat;
end;

procedure TSampleDockingMainForm.dxBarButton16Click(Sender: TObject);
begin
  BarManager.Style := bmsOffice11;
  dxDockingManager.ViewStyle := vsOffice11;
  dxStatusBar.PaintStyle := stpsOffice11;
end;

procedure TSampleDockingMainForm.dxBarButton14Click(Sender: TObject);
begin
  BarManager.Style := bmsXP;
  dxDockingManager.ViewStyle := vsXP;
  dxStatusBar.PaintStyle := stpsXP;
end;

procedure TSampleDockingMainForm.dxBarButton15Click(Sender: TObject);
begin
  BarManager.Style := bmsEnhanced;
  dxDockingManager.ViewStyle := vsStandard;
  dxStatusBar.PaintStyle := stpsStandard;
end;

procedure TSampleDockingMainForm.SetPanelsVisibility(AVisible: Boolean);
var
  i: Integer;
begin
  for i:=0 to dxDockingController.DockControlCount - 1 do
    if (dxDockingController.DockControls[i] is TdxCustomDockControl) and (dxDockingController.DockControls[i] <> DockSite1) then
    begin
      if (not AVisible) and dxDockingController.DockControls[i].AutoHide then
        dxDockingController.DockControls[i].Visible := True;
      dxDockingController.DockControls[i].Visible := AVisible;
    end;
end;

procedure TSampleDockingMainForm.dxBarButton18Click(Sender: TObject);
begin
  SetPanelsVisibility(True);
end;

procedure TSampleDockingMainForm.dxBarButton19Click(Sender: TObject);
begin
  SetPanelsVisibility(False);
end;

{$IFDEF DELPHI5}
procedure TSampleDockingMainForm.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 := AControl.Dockable;
    dxBarButtonFloating.Down := AControl.FloatDockSite <> nil;
    dxBarButtonAutoHide.Enabled := AControl.CanAutoHide;
    dxBarButtonAutoHide.Down := AControl.AutoHide;
    dxBarPopupMenu.PopupFromCursorPos;
    Handled := True;
  end;
end;
{$ENDIF}

procedure TSampleDockingMainForm.dxBarButtonDockableClick(Sender: TObject);
begin
  if FPopupMenuDockControl <> nil then
  begin
    FPopupMenuDockControl.Dockable := (Sender as TdxBarButton).Down;
    FPopupMenuDockControl := nil;
  end;
end;

procedure TSampleDockingMainForm.dxBarButton22Click(Sender: TObject);
begin
  if FPopupMenuDockControl <> nil then
  begin
    FPopupMenuDockControl.Visible := False;
    FPopupMenuDockControl := nil;
  end;
end;

procedure TSampleDockingMainForm.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 TSampleDockingMainForm.dxBarButtonAutoHideClick(Sender: TObject);
begin
  if FPopupMenuDockControl <> nil then
  begin
    FPopupMenuDockControl.AutoHide := (Sender as TdxBarButton).Down;
    FPopupMenuDockControl := nil;
  end;
end;

procedure TSampleDockingMainForm.CreateFrame(AFrameClass: TFormClass; AOwner: TdxDockPanel);
var
  AFrame: TCustomForm;
  ACaption: String;
  AImageIndex: Integer;
begin
  AFrame := AFrameClass.Create(AOwner);
  AFrame.Parent := AOwner;
  AFrame.Align := alClient;

  AImageIndex := -1;
  if AFrame is TSampleDockingTreeViewFrame then
  begin
    Inc(FTreeViewFrameCount);
    ACaption := 'TreeView Panel ' + IntToStr(FTreeViewFrameCount);
    AImageIndex := 0;
  end else
  if AFrame is TSampleDockingRichTextFrame then
  begin
    Inc(FDockingRichTextFrameCount);
    ACaption := 'RichText Panel ' + IntToStr(FDockingRichTextFrameCount);
    AImageIndex := 1;
  end else
  if AFrame is TSampleDockingRadioGroupFrame then
  begin
    Inc(FRadioGroupFrameCount);
    ACaption := 'RadioGroup Panel ' + IntToStr(FRadioGroupFrameCount);
    AImageIndex := 2;
  end else
  if AFrame is TSampleDockingListBoxFrame then
  begin
    Inc(FListBoxFrameCount);
    ACaption := 'ListBox Panel ' + IntToStr(FListBoxFrameCount);
    AImageIndex := 3;
  end;
  AOwner.Caption := ACaption;
  AOwner.ImageIndex := AImageIndex;
  AFrame.Visible := True;
end;

procedure StorePersistentInfo(Sender: TdxCustomDockControl);
var
  AWinControl: TWinControl;
  p: PPersistInfo;
  PSelInfo: PRichEditSelInfo;
begin
  if Sender.Visible and (Sender.Tag = 0) then
  begin
    AWinControl := GetFocusedControl(Sender);
    if AWinControl <> nil then
    begin
      New(p);
      p^.WinControl := AWinControl;
      if AWinControl is TCustomEdit then
      begin
        New(PSelInfo);
        PSelInfo^.SelStart := TCustomEdit(AWinControl).SelStart;
        PSelInfo^.SelLength := TCustomEdit(AWinControl).SelLength;
        p^.SpecInfo := Integer(PSelInfo);
        Sender.Tag := Integer(p);
      end;
      Sender.Tag := Integer(p);
    end;
  end;
end;

procedure RestorePersistentInfo(Sender: TdxCustomDockControl);
begin
  if Sender.Visible and (Sender.Tag <> 0) then
  begin
    if PPersistInfo(Sender.Tag)^.WinControl.CanFocus then
      PPersistInfo(Sender.Tag)^.WinControl.SetFocus;
    if PPersistInfo(Sender.Tag)^.WinControl is TCustomEdit then
    begin
      TCustomEdit(PPersistInfo(Sender.Tag)^.WinControl).SelStart := PRichEditSelInfo(PPersistInfo(Sender.Tag)^.SpecInfo)^.SelStart;
      TCustomEdit(PPersistInfo(Sender.Tag)^.WinControl).SelLength := PRichEditSelInfo(PPersistInfo(Sender.Tag)^.SpecInfo)^.SelLength;
      Dispose(PRichEditSelInfo(PPersistInfo(Sender.Tag)^.SpecInfo));
    end;
    Dispose(PPersistInfo(Sender.Tag));
    Sender.Tag := 0;
  end;
end;

procedure TSampleDockingMainForm.StartDock(Sender: TdxCustomDockControl; X,
  Y: Integer);
begin
  StorePersistentInfo(Sender);
end;

procedure TSampleDockingMainForm.EndDock(Sender: TdxCustomDockControl;
  Zone: TdxZone; X, Y: Integer);
begin
  RestorePersistentInfo(Sender);
end;

procedure TSampleDockingMainForm.HideDockControl(Sender: TdxDockSite;
  AControl: TdxCustomDockControl);
begin
  StorePersistentInfo(AControl);
end;

procedure TSampleDockingMainForm.ShowDockControl(Sender: TdxDockSite;
  AControl: TdxCustomDockControl);
begin
  RestorePersistentInfo(AControl);
end;

procedure TSampleDockingMainForm.AutoHideChanged(
  Sender: TdxCustomDockControl);
begin
  RestorePersistentInfo(Sender);
end;

procedure TSampleDockingMainForm.AutoHideChanging(
  Sender: TdxCustomDockControl);
begin
  StorePersistentInfo(Sender);
end;

procedure TSampleDockingMainForm.FormCreate(Sender: TObject);
begin
  dmCommonData.AboutFormClass := TSampleDockingAboutForm;
end;

end.

⌨️ 快捷键说明

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