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

📄 inplaceeditorsdemomain.cpp

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

#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 + -