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

📄 stylessimpledemostylesdialog.cpp

📁 delphi的的三方控件
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "StylesSimpleDemoStylesDialog.h"
#include "StylesSimpleDemoMain.h"
#include "StylesSimpleDemoData.h"
#include "StylesSimpleDemoEdit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cxButtons"
#pragma link "cxClasses"
#pragma link "cxControls"
#pragma link "cxEdit"
#pragma link "cxEditRepositoryItems"
#pragma link "cxGraphics"
#pragma link "cxInplaceContainer"
#pragma link "cxLookAndFeelPainters"
#pragma link "cxStyles"
#pragma link "cxVGrid"
#pragma resource "*.dfm"
TStylesSimpleDemoStylesDialogForm *StylesSimpleDemoStylesDialogForm;
//---------------------------------------------------------------------------
__fastcall TStylesSimpleDemoStylesDialogForm::TStylesSimpleDemoStylesDialogForm(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::FormCreate(TObject *Sender)
{
  OnClose = StylesSimpleDemoMainForm->StylesFormClosed;
  TStrings *ALookupItems = cxEditRepositoryMRUItem->Properties->LookupItems;
  TcxStyleRepository *ARespository = StylesSimpleDemoDataDM->StyleRepository;
  ALookupItems->Clear();
  TcxStyle *AStyle;
  for (int I = 0; I < ARespository->Count; I++){
    AStyle = (TcxStyle*)ARespository->Items[I];
    ALookupItems->AddObject(AStyle->Name, AStyle);
  }
  RefreshBinding();
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::OnButtonClick(TObject *Sender)
{
  ChangeStyle(GetSelectedStyle());
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::btnRestoreClick(TObject *Sender)
{
  if (FRestoreDefaults != NULL) FRestoreDefaults(Sender);
  RefreshBinding();
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::OnEditValueChanged(TObject *Sender)
{
  int ItemIndex = cxEditRepositoryMRUItem->Properties->LookupItems->IndexOf(
    ((TcxCustomMRUEdit*)Sender)->EditValue);
  TcxStyle *AStyle =
    (TcxStyle*)cxEditRepositoryMRUItem->Properties->LookupItems->Objects[ItemIndex];
  SetCurrentStyle(AStyle, (TStyles)(cxVerticalGrid->FocusedRow->VisibleIndex - 1));
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::cxVerticalGridStylesGetContentStyle(
  TObject *Sender, TcxCustomEditorRowProperties *AEditProp, bool AFocused,
  int ARecordIndex, TcxStyle *&AStyle)
{
  if (((TcxEditorRow*)AEditProp->Row)->VisibleIndex == 0)
    AStyle = cxVerticalGridStyleSheetDevExpress->Styles->Category;
  else
    AStyle = cxVerticalGridStyleSheetDevExpress->Styles->Content;
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::cxVerticalGridStylesGetHeaderStyle(
  TObject *Sender, TcxCustomRow *ARow, TcxStyle *&AStyle)
{
  if (ARow->VisibleIndex == 0)
    AStyle = cxVerticalGridStyleSheetDevExpress->Styles->Category;
  else
    AStyle = cxVerticalGridStyleSheetDevExpress->Styles->Header;
}
//---------------------------------------------------------------------------

TcxStyle* __fastcall TStylesSimpleDemoStylesDialogForm::GetSelectedStyle()
{
  int ItemIndex = cxEditRepositoryMRUItem->Properties->LookupItems->
    IndexOf(((TcxEditorRow*)cxVerticalGrid->FocusedRow)->Properties->Value);
  return (TcxStyle*)cxEditRepositoryMRUItem->Properties->LookupItems->Objects[ItemIndex];
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::RefreshBinding()
{
  TcxStyle *AStyle;
  for (int I = 1; I < cxVerticalGrid->Rows->Count; I++){
    AStyle = GetCurrentStyle((TStyles)(I - 1));
    if (AStyle != NULL)
      ((TcxEditorRow*)cxVerticalGrid->Rows->Items[I])->Properties->Value =
        AStyle->Name;
  }
}
//---------------------------------------------------------------------------

TcxStyle* __fastcall TStylesSimpleDemoStylesDialogForm::GetCurrentStyle(
  TStyles AStyleID)
{
  TcxStyle *Result = NULL;
  TcxDBVerticalGrid *cxDBVerticalGrid = StylesSimpleDemoMainForm->cxDBVerticalGrid;
  switch (AStyleID){
    case sBackground:
      Result = cxDBVerticalGrid->Styles->Background;
      break;
    case sCategory:
      Result = cxDBVerticalGrid->Styles->Category;
      break;
    case sHeader:
      Result = cxDBVerticalGrid->Styles->Header;
      break;
    case sContent:
      Result = cxDBVerticalGrid->Styles->Content;
      break;
    case sInactive:
      Result = cxDBVerticalGrid->Styles->Inactive;
      break;
    case sIncSearch:
      Result = cxDBVerticalGrid->Styles->IncSearch;
      break;
    case sSelection:
      Result = cxDBVerticalGrid->Styles->Selection;
  }
  return Result;
}
//---------------------------------------------------------------------------

void __fastcall TStylesSimpleDemoStylesDialogForm::SetCurrentStyle(
  TcxStyle *AStyle, TStyles AStyleID)
{
  TcxDBVerticalGrid *cxDBVerticalGrid = StylesSimpleDemoMainForm->cxDBVerticalGrid;
  switch (AStyleID){
    case sBackground:
      cxDBVerticalGrid->Styles->Background = AStyle;
      break;
    case sCategory:
      cxDBVerticalGrid->Styles->Category = AStyle;
      break;
    case sHeader:
      cxDBVerticalGrid->Styles->Header = AStyle;
      break;
    case sContent:
      cxDBVerticalGrid->Styles->Content = AStyle;
      break;
    case sInactive:
      cxDBVerticalGrid->Styles->Inactive = AStyle;
      break;
    case sIncSearch:
      cxDBVerticalGrid->Styles->IncSearch = AStyle;
      break;
    case sSelection:
      cxDBVerticalGrid->Styles->Selection = AStyle;
      break;
  }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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