📄 inplaceeditorsdemomain.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "InPlaceEditorsDemoMain.h"
#include "InPlaceEditorsDemoFrameManager.h"
#include "InPlaceEditorsDemoAbout.h"
#include "InPlaceEditorsDemoValue.h"
#include "InPlaceEditorsDemoComboBoxes.h"
#include "InPlaceEditorsDemoImage.h"
#include "InPlaceEditorsDemoText.h"
#include "InPlaceEditorsDemoMultiLineText.h"
#include "InPlaceEditorsDemoCheckBoxes.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "cxClasses"
#pragma link "cxGraphics"
#pragma link "dxBar"
#pragma link "dxRibbon"
#pragma link "dxRibbonForm"
#pragma link "cxEdit"
#pragma link "cxShellComboBox"
#pragma link "cxDropDownEdit"
#pragma link "cxBlobEdit"
#pragma link "cxRadioGroup"
#pragma link "cxCheckBox"
#pragma link "cxLabel"
#pragma link "cxTextEdit"
#pragma link "cxColorComboBox"
#pragma link "cxImageComboBox"
#pragma link "cxFontNameComboBox"
#pragma link "cxCheckComboBox"
#pragma link "cxSpinEdit"
#pragma link "cxProgressBar"
#pragma link "cxTrackBar"
#pragma link "cxTimeEdit"
#pragma link "cxCalendar"
#pragma link "cxCheckGroup"
#pragma link "cxCalc"
#pragma link "cxMemo"
#pragma link "cxRichEdit"
#pragma link "cxButtonEdit"
#pragma link "cxHyperLinkEdit"
#pragma link "cxMaskEdit"
#pragma link "cxImage"
#pragma link "cxDBLookupComboBox"
#pragma link "cxMRUEdit"
#pragma resource "*.dfm"
TfrmMain *frmMain;
int DemoTabsCount = 6;
int RibbonTabsCount = 9;
AnsiString TabCaptions[9] = {"Value Editors", "Multi-line Text Editors", "Text Editors",
"Image Editors", "Combo Boxes", "Check Boxes & Groups", "Styles", "Ribbon options", "Help"};
char
*SToolBarDescription = "Edit values using bar editors and see the results below",
*SDemoDescription = "This demo illustrates the use of thirty different in-place editors from the ExpressEditors"
" Library. The ExpressEditors Library is not a part of ExpressBars v6 and must be"
" purchased separately. Select Help | About for more information.",
*SRibbonOptionsDescription = "Use these options to customize Ribbon control appearance settings and toggle the Ribbon UI on/off.",
*SEditorStyles = "Choose an in-place editor to be displayed by a TcxBarEdit item and apply different styles to the item''s caption and editor.",
*SImageEditDescription = "Load images in bar editors and see the results below",
*SCheckBoxesDescription = SToolBarDescription,
*SMultiLineTextEdits = SToolBarDescription,
*SFileFindError = "File %s not found";
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TdxCustomRibbonForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
dmCommonData->AboutFormClass = __classid(TfrmAbout);
CreateFrames();
((TWinControl*)(dxBarDockControl1))->Align = alTop;
lblDemoDescription->Caption = SDemoDescription;
Panel1->Align = alClient;
Panel2->Align = alClient;
tblContacts->Open();
BarManager->BeginUpdate();
try
{
InitializeComboBoxes();
InitializeCheckBoxes();
InitializeImageEditors();
InitializeMultilineTextEditors();
InitializeTextEditors();
InitializeValueEditors();
InitializeEditorStyles();
InitializeRibbon();
InitializeFrames();
BarManager->Style = bmsOffice11;
UpdateActionsImages();
BarManager->Bars->Items[1]->Visible = true;
SelectNonRibbonTab(1);
}
__finally
{
BarManager->EndUpdate(true);
};
}
void __fastcall TfrmMain::btnEditorStylesClick(TObject *Sender)
{
SelectNonRibbonTab(((TComponent*)(Sender))->Tag);
}
void __fastcall TfrmMain::HideAllFrames()
{
for(int I = 0; I < EditorDemoFrameManager()->FramesCount; I++)
((TForm*)(EditorDemoFrameManager()->Frames[I]))->Hide();
};
void __fastcall TfrmMain::ShowAllDemoToolbars(bool AVisible)
{
BarManager->BeginUpdate();
try
{
for (int I = 0; I < BarManager->Bars->Count; I++)
if (BarManager->Bars->Items[I]->Tag != 0)
BarManager->Bars->Items[I]->Visible = AVisible;
}
__finally
{
BarManager->EndUpdate(true);
}
};
void __fastcall TfrmMain::SelectNonRibbonTab(int ATabIndex)
{
ShowAllDemoToolbars(false);
int APos = 0;
BarManager->BeginUpdate();
try
{
for (int I = 0; I < (BarManager->Bars->Count); I++)
if (BarManager->Bars->Items[I]->Tag == ATabIndex)
{
BarManager->Bars->Items[I]->Move(dxBarDockControl1, APos, 0);
BarManager->Bars->Items[I]->Visible = True;
APos++;
}
}
__finally
{
BarManager->EndUpdate(true);
};
SelectTab(ATabIndex);
};
void __fastcall TfrmMain::SelectTab(int ATabIndex)
{
HideAllFrames();
if (ATabIndex <= EditorDemoFrameManager()->FramesCount)
EditorDemoFrameManager()->Frames[ATabIndex - 1]->Show();
};
void __fastcall TfrmMain::DockAllDemoToolBars(TdxBarDockControl* ADockControl)
{
for (int I = 1; I <= DemoTabsCount; I++)
BarManager->Bars->Items[I]->DockControl = dxBarDockControl1;
}
void __fastcall TfrmMain::RibbonTabChanged(TdxCustomRibbon* Sender)
{
SelectTab(Sender->ActiveTab->Tag);
};
void __fastcall TfrmMain::InitializeStylesCombo(TcxBarEditItem* ABarEditItem, TStrings* AStyles)
{
((TcxComboBoxProperties*)(ABarEditItem->Properties))->Items->AddStrings(AStyles);
ABarEditItem->EditValue = ((TcxComboBoxProperties*)(ABarEditItem->Properties))->Items->Strings[0];
};
void __fastcall TfrmMain::ReadTextFile(TcxBarEditItem* AEditor, AnsiString AFileName)
{
TStringList* AList;
AList = new TStringList;
try
{
if (FileExists(AFileName))
{
AList->LoadFromFile(AFileName);
AEditor->EditValue = AList->Text;
}
else
{
TVarRec args[1] = {AFileName};
ShowMessage(Format(SFileFindError, args, 0));
}
}
__finally
{
delete AList;
};
};
void __fastcall TfrmMain::CreateFrames()
{
EditorDemoFrameManager()->AddFrame(new TfrmValueEditors(this), bfcValueEditors);
EditorDemoFrameManager()->AddFrame(new TfrmMultiLineTextEditors(this), bfcMultilineTextEditors);
EditorDemoFrameManager()->AddFrame(new TfrmTextEditors(this), bfcTextEditors);
EditorDemoFrameManager()->AddFrame(new TfrmImageEditors(this), bfcImageEditors);
EditorDemoFrameManager()->AddFrame(new TfrmComboBoxes(this), bfcComboBoxes);
EditorDemoFrameManager()->AddFrame(new TfrmCheckBoxes(this), bfcCheckBoxes);
EditorDemoFrameManager()->AddFrame(new TEditorDemoBaseFrame(this), bfcStyles);
EditorDemoFrameManager()->AddFrame(new TEditorDemoBaseFrame(this), bfcRibbonOptions);
}
void __fastcall TfrmMain::UpdateCheckBoxesView()
{
TfrmCheckBoxes* AFrame = dynamic_cast<TfrmCheckBoxes*>(EditorDemoFrameManager()->Frames[bfcCheckBoxes]);
AFrame->SetParameters(rgSelectColor->EditValue, chgSelectColor->EditValue, chbMonochrome->EditValue);
};
void __fastcall TfrmMain::UpdateComboBoxesView()
{
Graphics::TBitmap* AImage = new Graphics::TBitmap;
try
{
ilSmall->GetImage(imcImages->EditValue, AImage);
TfrmComboBoxes* AFrame = dynamic_cast<TfrmComboBoxes*>(EditorDemoFrameManager()->Frames[bfcComboBoxes]);
AFrame->SetParameters((TColor)((int)(clcFontColor->EditValue)), fncPathFontName->EditValue,
scbSelectPath->EditValue, cbFontSize->EditValue, AImage, tblContacts->FieldByName("FullName")->AsString);
}
__finally
{
delete AImage;
};
};
void __fastcall TfrmMain::UpdateImageEditorsView()
{
TStringStream* AStream;
if (VarIsNull(edtImage->EditValue))
AStream = NULL;
else
AStream = new TStringStream(edtImage->EditValue);
try
{
TfrmImageEditors* AFrame = dynamic_cast<TfrmImageEditors*>(EditorDemoFrameManager()->Frames[bfcImageEditors]);
AFrame->SetParameters(AStream);
}
__finally
{
delete AStream;
};
};
void __fastcall TfrmMain::UpdateMultilineTextEditorsView()
{
TStringStream* AStream = new TStringStream(memMemo->EditValue);
try
{
TfrmMultiLineTextEditors* AFrame = dynamic_cast<TfrmMultiLineTextEditors*>(EditorDemoFrameManager()->Frames[bfcMultilineTextEditors]);
AFrame->SetParameters(0, AStream);
}
__finally
{
delete AStream;
};
};
AnsiString _fastcall TfrmMain::GetDateValue()
{
if (VarIsNull(edtDate->EditValue))
return ("");
else
return (edtDate->EditValue);
}
void __fastcall TfrmMain::UpdateValueEditorsView()
{
TfrmValueEditors* AFrame = dynamic_cast<TfrmValueEditors*>(EditorDemoFrameManager()->Frames[bfcValueEditors]);
AFrame->SetParameters(prbFontSize->EditValue, GetDateValue(), edtTime->EditValue, edtMoney->EditValue);
};
void __fastcall TfrmMain::UpdateTextEditView()
{
TfrmTextEditors* AFrame = dynamic_cast<TfrmTextEditors*>(EditorDemoFrameManager()->Frames[bfcTextEditors]);
AFrame->SetParameters(edtCompanyName->EditValue, edtSite->EditValue, mePhoneNum->EditValue);
};
void __fastcall TfrmMain::cbSelectEditTypeChange(TObject *Sender)
{
int AIndex = ((TcxComboBoxProperties*)(cbSelectEditType->Properties))->Items->IndexOf(cbSelectEditType->EditValue);
TMetaClass* APropertiesClass = (GetRegisteredEditProperties()->Items[AIndex]);
TcxBarEditItem* AItem;
for (int AIndex = 0; AIndex < BarManager->ItemCount; AIndex++)
{
AItem = dynamic_cast<TcxBarEditItem *>(BarManager->Items[AIndex]);
if ((AItem != 0)&&(AItem->PropertiesClass == APropertiesClass)&&((AItem->Category > 0)&&(AItem->Category <= DemoTabsCount)))
{
edtPreviewItem->EditValue = Null;
edtPreviewItem->PropertiesClass = APropertiesClass;
edtPreviewItem->Properties->Assign(AItem->Properties);
edtPreviewItem->EditValue = AItem->EditValue;
edtPreviewItem->Caption = cbSelectEditType->EditValue;
};
};
};
void __fastcall TfrmMain::cbStyleChange(TObject *Sender)
{
SetEditorStyle("Style", cbStyle);
}
void __fastcall TfrmMain::FormDestroy(TObject *Sender)
{
tblContacts->Close();
delete EditorDemoFrameManager();
};
void __fastcall TfrmMain::UpdateActionsImages()
{
btnDockingHelp->ImageIndex = 18;
btnBarsHelp->ImageIndex = 18;
btnDXOnTheWeb->ImageIndex = 20;
btnMyDX->ImageIndex = 20;
btnDownloads->ImageIndex = 20;
btnProducts->ImageIndex = 20;
btnSupport->ImageIndex = 21;
btnRateDemo->ImageIndex = 22;
btnAbout->LargeImageIndex = 19;
btnAbout->ImageIndex = 19;
};
void __fastcall TfrmMain::cbRibbonFontChange(TObject *Sender)
{
SynchronizeRibbonFontEditors();
}
void __fastcall TfrmMain::ccbAssignedRibbonFontsChange(TObject *Sender)
{
if (! FUpdateLock)
{
AnsiString AValue;
AValue = ccbAssignedRibbonFonts->EditValue;
TdxRibbonAssignedFonts AFonts = FRibbon->Fonts->AssignedFonts;
for (int I = 1; I <= ((TcxCheckComboBoxProperties*)(ccbAssignedRibbonFonts->Properties))->Items->Count; I++)
if (AValue[I] == '1')
AFonts << (TdxRibbonAssignedFont)(I - 1);
else
AFonts >> (TdxRibbonAssignedFont)(I - 1);
FRibbon->Fonts->AssignedFonts = AFonts;
SynchronizeRibbonFontEditors();
};
};
void __fastcall TfrmMain::btnRibbonStyleClick(TObject *Sender)
{
if (btnRibbonStyle->Down)
{
BarManager->BeginUpdate();
try
{
tlbMainMenu->Visible = false;
DockAllDemoToolBars(0);
FRibbon->BarManager = BarManager;
FRibbon->SupportNonClientDrawing = true;
ShowAllDemoToolbars(true);
FRibbon->Visible = true;
tlbRibbonOptions->Visible = true;
tlbHelp->Visible = true;
FRibbon->Tabs->Items[0]->Active = true;
lblDemoDescription->Align = alBottom;
((TcxCheckGroupProperties*)(chgSelectColor->Properties))->Columns = 3;
((TcxRadioGroupProperties*)(rgSelectColor->Properties))->Columns = 3;
SelectTab(1);
}
__finally
{
BarManager->EndUpdate(true);
};
}
else
{
BarManager->BeginUpdate();
try
{
FRibbon->Visible = false;
tlbRibbonOptions->Visible = false;
tlbHelp->Visible = false;
FRibbon->SupportNonClientDrawing = false;
FRibbon->BarManager = 0;
btnValueEdits->Down = true;
ShowAllDemoToolbars(false);
tlbMainMenu->Visible = true;
BarManager->Bars->Items[1]->Visible = true;
((TcxCheckGroupProperties*)(chgSelectColor->Properties))->Columns = 1;
((TcxRadioGroupProperties*)(rgSelectColor->Properties))->Columns = 1;
SelectNonRibbonTab(1);
}
__finally
{
BarManager->EndUpdate(true);
};
lblDemoDescription->Align = alTop;
};
};
void __fastcall TfrmMain::seFontSizeChange(TObject *Sender)
{
if (! FUpdateLock)
{
SynchronizeValueEditors(((TcxBarEditItem*)(Sender))->EditValue);
UpdateValueEditorsView();
};
};
void __fastcall TfrmMain::edtCompanyNameChange(TObject *Sender)
{
if (! FUpdateLock)
{
if (ActiveBarControl() != NULL)
ActiveBarControl()->HideAll();
SynchronizeTextEditors(((TcxBarEditItem*)(Sender))->EditValue);
UpdateTextEditView();
};
};
void __fastcall TfrmMain::edtMoneyChange(TObject *Sender)
{
if (! FUpdateLock)
{
SynchronizeCalcValueEditors(((TcxBarEditItem*)(Sender))->EditValue);
UpdateValueEditorsView();
};
};
void __fastcall TfrmMain::InitializeComboBoxes()
{
scbSelectPath->EditValue = GetCurrentDir();
clcFontColor->EditValue = clWindow;
EditorDemoFrameManager()->Frames[bfcComboBoxes]->SetDescription(SToolBarDescription);
};
void __fastcall TfrmMain::InitializeCheckBoxes()
{
chbMonochrome->EditValue = false;
EditorDemoFrameManager()->Frames[bfcCheckBoxes]->SetDescription(SCheckBoxesDescription);
};
void __fastcall TfrmMain::InitializeImageEditors()
{
SynchronizeImageEditors(edtImage->EditValue);
UpdateImageEditorsView();
EditorDemoFrameManager()->Frames[bfcImageEditors]->SetDescription(SImageEditDescription);
};
void __fastcall TfrmMain::InitializeMultilineTextEditors()
{
ReadTextFile(reRich, "EditorCategories.rtf");
SynchronizeMultilineTextEditors(memPopup->Lines->Text);
UpdateMultilineTextEditorsView();
EditorDemoFrameManager()->Frames[bfcMultilineTextEditors]->SetDescription(SMultiLineTextEdits);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -