//--------------------------------------------------------------------------- #include #pragma hdrstop #include "StylesMultiMain.h" //--------------------------------------------------------------------------- #include "cxStyleSheetEditor.hpp" #pragma package(smart_init) #pragma link "cxLookAndFeels" #pragma link "DemoBasicMain" #pragma link "cxControls" #pragma link "cxCustomPivotGrid" #pragma link "cxDBPivotGrid" #pragma link "cxButtons" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxEdit" #pragma link "cxGroupBox" #pragma link "cxListBox" #pragma link "cxRadioGroup" #pragma link "cxStyles" #pragma resource "*.dfm" TfrmStylesMulti *frmStylesMulti; const int cNone = 0; const int cPredefined = 1; const int cUserDefined = 2; //--------------------------------------------------------------------------- __fastcall TfrmStylesMulti::TfrmStylesMulti(TComponent* Owner) : TfrmDemoBaisicMain(Owner) { } void __fastcall TfrmStylesMulti::FormCreate(TObject* Sender) { lfController->NativeStyle = false; lfController->Kind = lfUltraFlat; CreateUserStyleSheetsList(); CreatePredefinedStyleSheetsList(); SetPredefinedStyleSheets(); } TcxCustomPivotGrid* __fastcall TfrmStylesMulti::PivotGrid() { return DBPivotGrid; } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::RadioGroupClick(TObject *Sender) { switch (((TcxRadioGroup*)Sender)->ItemIndex){ case cNone: { UpdateGridStyleSheets(NULL); break; } case cPredefined: { SetPredefinedStyleSheets(); break; } case cUserDefined: { SetUserDefinedStyleSheets(); break; } } ChangeVisibility(((TcxRadioGroup*)Sender)->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::lbPredefinedStyleSheetsClick( TObject *Sender) { SetPredefinedStyleSheets(); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::cbUserStyleSheetsChange(TObject *Sender) { SetUserDefinedStyleSheets(); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::btnEditClick(TObject *Sender) { ShowcxStyleSheetEditor(((TcxPivotGridStyleSheet*)cbUserStyleSheets->Items->Objects[cbUserStyleSheets->ItemIndex]), NULL); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::btnLoadClick(TObject *Sender) { if (OpenDialog->Execute()) LoadUserDefinedStyleSheets(OpenDialog->FileName); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::btnSaveClick(TObject *Sender) { if (SaveDialog1->Execute()) SaveUserDefinedStyleSheets(SaveDialog1->FileName); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::ChangeVisibility(int AType) { cbUserStyleSheets->Enabled = AType == cUserDefined; gbUserDefined->Enabled = AType == cUserDefined; btnEdit->Enabled = AType == cUserDefined; btnLoad->Enabled = AType == cUserDefined; btnSave->Enabled = AType == cUserDefined; lbPredefinedStyleSheets->Enabled = AType == cPredefined; } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::ClearUserDefinedStyleSheets() { srUserDefined->Clear(); srUserDefined->ClearStyleSheets(); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::CreatePredefinedStyleSheetsList() { lbPredefinedStyleSheets->Clear(); for (int I = 0; I < srPredefined->StyleSheetCount; I++) lbPredefinedStyleSheets->Items->AddObject( srPredefined->StyleSheets[I]->Caption, srPredefined->StyleSheets[I]); lbPredefinedStyleSheets->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::CreateUserStyleSheetsList() { cbUserStyleSheets->Clear(); for (int I = 0; I < srUserDefined->StyleSheetCount; I++) cbUserStyleSheets->Items->AddObject( srUserDefined->StyleSheets[I]->Caption, srUserDefined->StyleSheets[I]); cbUserStyleSheets->ItemIndex = 0; } //--------------------------------------------------------------------------- TcxPivotGridStyleSheet* __fastcall TfrmStylesMulti::GetCurrentStyleSheet() { return (TcxPivotGridStyleSheet*)PivotGrid()->Styles->StyleSheet; } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::LoadUserDefinedStyleSheets(AnsiString AFileName) { UpdateGridStyleSheets(NULL); ClearUserDefinedStyleSheets(); LoadStyleSheetsFromIniFile(AFileName, srUserDefined, __classid(TcxPivotGridStyleSheet), NULL, NULL, NULL, NULL); CreateUserStyleSheetsList(); SetUserDefinedStyleSheets(); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::SaveUserDefinedStyleSheets(AnsiString AFileName) { TList* AList = new TList(); try { for (int I = 0; I < srUserDefined->StyleSheetCount; I++) AList->Add(srUserDefined->StyleSheets[I]); SaveStyleSheetsToIniFile(AFileName, AList); } __finally { delete AList; } } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::SetPredefinedStyleSheets() { if (lbPredefinedStyleSheets->Items->Count > 0) UpdateGridStyleSheets((TcxPivotGridStyleSheet*)lbPredefinedStyleSheets->Items->Objects[lbPredefinedStyleSheets->ItemIndex]); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::SetUserDefinedStyleSheets() { if (cbUserStyleSheets->Items->Count > 0) UpdateGridStyleSheets((TcxPivotGridStyleSheet*)cbUserStyleSheets->Items->Objects[cbUserStyleSheets->ItemIndex]); } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::UpdateGridStyleSheets(TcxPivotGridStyleSheet* AStyleSheet) { if (GetCurrentStyleSheet() == AStyleSheet) return; PivotGrid()->Styles->StyleSheet = AStyleSheet; if (AStyleSheet != NULL) pnlCurrentStyleSheet->Caption = AStyleSheet->Caption; else pnlCurrentStyleSheet->Caption = ""; } //--------------------------------------------------------------------------- void __fastcall TfrmStylesMulti::FormActivate(TObject *Sender) { OpenDialog->InitialDir = ExtractFileDir(Application->ExeName); SaveDialog->InitialDir = OpenDialog->InitialDir; PivotGridCarName->Area = faRow; } //---------------------------------------------------------------------------