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

📄 dockingmegademomain.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "DockingMegaDemoMain.h"
#include "DockingMegaDemoAbout.h"
#include "EBarsDemoRating.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "dxBar"
#pragma link "dxDockControl"
#pragma link "dxDockPanel"
#pragma link "dxBarExtItems"
#pragma link "dxsbar"
#pragma resource "*.dfm"
TDockingMegaDemoMainForm *DockingMegaDemoMainForm;
//---------------------------------------------------------------------------
__fastcall TDockingMegaDemoMainForm::TDockingMegaDemoMainForm(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::FormShow(TObject *Sender)
{
  DockControl = dsHost;
  UpdateSolutionTV();
  UpdateClassViewTV();
  ComboBox1->Align = alClient;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::CheckSite(TdxCustomDockControl* AControl, TTreeNode* ANode)
{
  String ANodeName;
  if (AControl->Name != "")
    ANodeName = AControl->Name;
  else ANodeName = AControl->ClassName();
  TTreeNode* AChild = tvSolutionExplorer->Items->AddChildObject(ANode, ANodeName, AControl);
  AChild->StateIndex = AControl->ImageIndex;
  for (int i=0; i < AControl->ChildCount; i++)
    CheckSite(AControl->Children[i], AChild);
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::UpdateSolutionTV()
{
  if (!tvSolutionExplorer->HandleAllocated()) return;
  tvSolutionExplorer->Items->BeginUpdate();
  try {
    tvSolutionExplorer->Items->Clear();
    CheckSite(dsHost, NULL);
    tvSolutionExplorer->FullExpand();
  }
  __finally {
    tvSolutionExplorer->Items->EndUpdate();
  }
  tvSolutionExplorer->Selected = NULL;
  for (int i=0; i < tvSolutionExplorer->Items->Count; i++)
    if (((TdxCustomDockControl*)tvSolutionExplorer->Items->Item[i]->Data) == DockControl)
      tvSolutionExplorer->Selected = tvSolutionExplorer->Items->Item[i];
  UpdateProperties();
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::UpdateClassViewTV()
{
  if (!tvClassView->HandleAllocated()) return;
  TTreeNode* ANode;
  tvClassView->Items->BeginUpdate();
  try {
    tvClassView->Items->Clear();
    ANode = tvClassView->Items->AddChild(NULL, "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->Item[1], "TdxFloatDockSite");
    tvClassView->Items->AddChild(tvClassView->Items->Item[1], "TdxDockSite");
    tvClassView->Items->AddChild(tvClassView->Items->Item[0], "TdxDockPanel");
    tvClassView->FullExpand();
  }
  __finally {
    tvClassView->Items->EndUpdate();
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::MakeVisible(TdxDockPanel* AControl)
{
  if (AControl == NULL) return;
  if (!AControl->Visible)
    AControl->Visible = true;
  dxDockingController()->ActiveDockControl = AControl;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonPageClick(TObject *Sender)
{
  switch (((TComponent*)Sender)->Tag) {
    case 0: MakeVisible(dpStartPage); break;
    case 1: MakeVisible(dpSolutionExplorer); break;
    case 2: MakeVisible(dpClassView); break;
    case 3: MakeVisible(dpProperties); break;
    case 4: MakeVisible(dpToolbox); break;
    case 5: MakeVisible(dpCallStack); break;
    case 6: MakeVisible(dpOutput); break;
    case 7: MakeVisible(dpWatch); break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TDockingMegaDemoMainForm::dxBarButtonLoadClick(TObject *Sender)
{
  if (OpenDialog1->Execute())
    dxDockingManager1->LoadLayoutFromIniFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonSaveClick(TObject *Sender)
{
  if (SaveDialog1->Execute())
    dxDockingManager1->SaveLayoutToIniFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonColorClick(TObject *Sender)
{
  ColorDialog1->Color = dxDockingManager1->Color;
  if (ColorDialog1->Execute())
    dxDockingManager1->Color = ColorDialog1->Color;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonFontClick(TObject *Sender)
{
  FontDialog1->Font = dxDockingManager1->Font;
  if (FontDialog1->Execute())
    dxDockingManager1->Font = FontDialog1->Font;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonStandardViewClick(TObject *Sender)
{
  dxDockingManager1->ViewStyle = vsStandard;
  BarManager->Style = bmsStandard;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonNETViewClick(TObject *Sender)
{
  dxDockingManager1->ViewStyle = vsNET;
  BarManager->Style = bmsFlat;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonOffice11ViewClick(TObject *Sender)
{
  dxDockingManager1->ViewStyle = vsOffice11;
  BarManager->Style = bmsOffice11;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonXPViewClick(TObject *Sender)
{
  dxDockingManager1->ViewStyle = vsXP;
  BarManager->Style = bmsXP;
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::frStartPage1Label1Click(TObject *Sender)
{
  dxBarButtonLoadClick(Sender);
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::frStartPage1Label2Click(TObject *Sender)
{
  dxBarButtonSaveClick(Sender);
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonExitClick(TObject *Sender)
{
  Close();  
}
//---------------------------------------------------------------------------


void __fastcall TDockingMegaDemoMainForm::dxBarButtonDockableClick(TObject *Sender)
{
  if (FPopupMenuDockControl != NULL) {
    FPopupMenuDockControl->Dockable = ((TdxBarButton*)Sender)->Down;
    FPopupMenuDockControl = NULL;
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonHideClick(TObject *Sender)
{
  if (FPopupMenuDockControl != NULL) {
    FPopupMenuDockControl->Visible = false;
    FPopupMenuDockControl = NULL;
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonFloatingClick(TObject *Sender)
{
  TPoint pt;
  if ((FPopupMenuDockControl != NULL) && (FPopupMenuDockControl->DockState != dsFloating)) {
    GetCursorPos(&pt);
    FPopupMenuDockControl->MakeFloating(pt.x, pt. y);
    FPopupMenuDockControl = NULL;
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dxBarButtonAutoHideClick(TObject *Sender)
{
  if (FPopupMenuDockControl != NULL) {
    FPopupMenuDockControl->AutoHide = ((TdxBarButton*)Sender)->Down;
    FPopupMenuDockControl = NULL;
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::dpContextPopup(TObject *Sender, const TPoint &MousePos, bool &Handled)
{
  TPoint pt;
  GetCursorPos(&pt);
  TdxCustomDockControl* AControl = dxDockingController()->GetDockControlAtPos(pt);
  if (AControl != NULL) {
    FPopupMenuDockControl = AControl;
    dxBarButtonDockable->Down = FPopupMenuDockControl->Dockable;
    dxBarButtonFloating->Down = FPopupMenuDockControl->FloatDockSite != NULL;
    dxBarButtonAutoHide->Enabled = FPopupMenuDockControl->CanAutoHide();
    dxBarButtonAutoHide->Down = FPopupMenuDockControl->AutoHide;
    dxBarPopupMenu1->PopupFromCursorPos();
    Handled = true;
  }
}
//---------------------------------------------------------------------------

void __fastcall TDockingMegaDemoMainForm::UpdateProperties()
{
  if ((FDockControl != NULL) && !FDockControl->ComponentState.Contains(csDestroying)) {
    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 = FDockControl->CaptionButtons.Contains(cbClose);
    cbShowMaxButton->Enabled = true;
    cbShowMaxButton->Checked = FDockControl->CaptionButtons.Contains(cbMaximize);
    cbShowHideButton->Enabled = true;
    cbShowHideButton->Checked = FDockControl->CaptionButtons.Contains(cbHide);

    cbAllowDockLeft->Enabled = true;
    cbAllowDockLeft->Checked = FDockControl->AllowDock.Contains(dtLeft);
    cbAllowDockTop->Enabled = true;
    cbAllowDockTop->Checked = FDockControl->AllowDock.Contains(dtTop);
    cbAllowDockRight->Enabled = true;
    cbAllowDockRight->Checked = FDockControl->AllowDock.Contains(dtRight);

⌨️ 快捷键说明

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