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

📄 editorsstylesdemomain.cpp

📁 DevExpress ExpressQuantumGrid Suite v5.9 Full Source
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <shellapi.hpp>
#pragma hdrstop

#include "EditorsStylesDemoMain.h"
#include "EditorsStylesDemoUtils.h"
#include "AboutDemoForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cxContainer"
#pragma link "cxControls"
#pragma link "cxDropDownEdit"
#pragma link "cxEdit"
#pragma link "cxFontNameComboBox"
#pragma link "cxGroupBox"
#pragma link "cxHint"
#pragma link "cxLookAndFeels"
#pragma link "cxMaskEdit"
#pragma link "cxMemo"
#pragma link "cxSpinEdit"
#pragma link "cxSplitter"
#pragma link "cxTextEdit"
#pragma link "cxTreeView"
#pragma link "cxPC"
#pragma resource "*.dfm"
TEditorsStylesDemoDemoMainForm *EditorsStylesDemoDemoMainForm;
TEditorsStylesDemoBaseFrame* ActiveFrame;
//---------------------------------------------------------------------------
__fastcall TEditorsStylesDemoDemoMainForm::TEditorsStylesDemoDemoMainForm(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TEditorsStylesDemoDemoMainForm::FormCreate(TObject *Sender)
{
  RegisterFrames();
  AdjustDescriptionsPageControl();
  FillTreeViewItems();
  cxTreeView->Items->GetFirstNode()->Expand(true);
  cxTreeView->Items->GetFirstNode()->Selected = true;
  cxTreeViewChange(Sender, cxTreeView->Items->GetFirstNode());
  FDefaultHintStyle = false;
  FDefaultDisplayStyle = false;
  FCurrentDisplayStyle = shtLightBlue;
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::RegisterFrames()
{
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(TextProcessingFrameID));
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(ImageProcessingFrameID));
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(SolarSystemFrameID));
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(NoteBookFrameID));
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(IssuesFrameID ));
  EditorsStylesDemoFrameManager()->AddFrame(CreateFrameByID(StylesPaletteFrameID));
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AddChildNodes(TcxExtEditorTypes AExtEditorTypes, TStrings* AStrings, TTreeNode* ANode)
{
  cxGetEditorsNamesListByTypes(AStrings, AExtEditorTypes);
  for (int i=0; i < AStrings->Count; i++)
    cxTreeView->Items->AddChild(ANode, AStrings->Strings[i]);
  ANode->AlphaSort();  
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AdjustDescriptionsPageControl()
{
  for (int I = 0; I < EditorsStylesDemoFrameManager()->FramesCount; I++){
    TcxTabSheet *APage = new TcxTabSheet(PageControl);
    APage->PageControl = PageControl;
    TEditorsStylesDemoBaseFrame *AFrame = EditorsStylesDemoFrameManager()->Frames[I];
    APage->Caption = AFrame->BriefName();
    AFrame->pnlDescription->Parent = APage;
    AFrame->pnlDescription->Visible = true;
    AFrame->pnlDescription->Align = alClient;
    AFrame->memDescrip->Properties->WordWrap = true;
    APage->ImageIndex = APage->TabIndex;
  }
}

void __fastcall TEditorsStylesDemoDemoMainForm::FillTreeViewItems()
{
  cxTreeView->Items->Clear();
  TStringList* AStrings = new TStringList();
  TTreeNode* ANode;
  for (int i=0; i < EditorsStylesDemoFrameManager()->FramesCount; i++) {
    EditorsStylesDemoFrameManager()->Frames[i]->OnFileNameChanged = UpdateFileNameStatusPanel;
    ANode = cxTreeView->Items->AddChildObject(NULL,
      EditorsStylesDemoFrameManager()->Frames[i]->Name(), EditorsStylesDemoFrameManager()->Frames[i]);
    AddChildNodes(EditorsStylesDemoFrameManager()->Frames[i]->
      GetExtEditorTypes(EditorsStylesDemoFrameManager()->Frames[i]), AStrings, ANode);
  }
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::FormDestroy(TObject *Sender)
{
  delete EditorsStylesDemoFrameManager();
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::ClickCorrespondingHintMenuItem(TcxHintType AHintType, bool ADefaultHintStyle)
{
  TMenuItem* AMenuItem;
  if (!ADefaultHintStyle) {
    if (AHintType == hcstNoHint)
      AMenuItem = miCurHintStyle->Items[(int)AHintType + 1];
    else
      AMenuItem = miCurHintStyle->Items[(int)AHintType];
    AMenuItem->OnClick(AMenuItem);
  }
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AdjustFrameDisplayStyle(TEditorsStylesDemoBaseFrame* AFrame,
  bool ADefaultDisplayStyle)
{
  if (ADefaultDisplayStyle)
    ActiveFrame->ChangeDisplayStyle(FCurrentDisplayStyle);
  else {
    miCurDisplayStyle->Items[(int)AFrame->DisplayStyle]->Checked = true;
    AFrame->DisplayStyle = AFrame->DisplayStyle;
  }
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AdjustFileNameStatusPanel()
{
  sbMain->Panels->Items[1]->Text = ExtractFileName(ActiveFrame->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AdjustNotePane(TEditorsStylesDemoBaseFrame* AFrame)
{
  gbDescription->Color = AFrame->GetStyleBackgroundColor();
  gbDescription->CaptionBkColor = AFrame->GetStyleBackgroundColor();
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::AdjustFileMenu()
{
  miFileOpen->Visible = ActiveFrame->MenuOpenFileVisible();
  miFileSave->Visible = ActiveFrame->MenuSaveFileVisible();
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::cxTreeViewChange(
      TObject *Sender, TTreeNode *Node)
{
  String AControlClassName;
  if (Node) {
    if (Node->Parent) {
      AControlClassName = Node->Text;
      Node = Node->Parent;
    }
    TEditorsStylesDemoBaseFrame* AFrame = (TEditorsStylesDemoBaseFrame*)Node->Data;
    if (ActiveFrame)
      ActiveFrame->Flickering = false;
    if ((AFrame) && (AControlClassName != NULL))
      AFrame->FlickerControls(AControlClassName);
    if (ActiveFrame != AFrame) {
      if ((ActiveFrame) && (AFrame)){
        ActiveFrame->Visible = false;
        ActiveFrame->Parent = NULL;
      }
      ActiveFrame = AFrame;
      ActiveFrame->Parent = cxGroupBox;
      ActiveFrame->Visible = true;
      ClickCorrespondingHintMenuItem(ActiveFrame->HintStyle, DefaultHintStyle);
      AdjustFrameDisplayStyle(ActiveFrame, DefaultDisplayStyle);
      AdjustFileMenu();
      AdjustNotePane(AFrame);
      PageControl->ActivePage = PageControl->Pages[Node->Index];
      AdjustFileNameStatusPanel();
      miStyle->Visible = AFrame->StyleMenuVisible();
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::UncheckMenuItems(TMenuItem* AItems)
{
  for (int i=0; i < AItems->Count; i++)
    AItems->Items[i]->Checked = false;
}
//---------------------------------------------------------------------------

void __fastcall TEditorsStylesDemoDemoMainForm::SetLightInfoHintStyle()
{
  if (!ShowHint) ShowHint = true;
  cxHintStyleController->HintStyle->Standard = false;
  cxHintStyleController->HintStyle->Animate = cxhaFadeIn;

⌨️ 快捷键说明

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