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

📄 ebarmegademomain.cpp

📁 胜天进销存源码,国产优秀的进销存
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "EBarMegaDemoMain.h"
#include "EBarMegaDemoData.h"
#include "EBarMegaDemoOptions.h"
#include "EBarMegaDemoAbout.h"
#include "EBarsDemoRating.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)

#pragma link "dxBar"
#pragma link "dxBarDBNav"
#pragma link "dxBarExtDBItems"
#pragma link "dxBarExtItems"
#pragma link "dxsbar"

#if (__BORLANDC__ >= 0x540) && (__BORLANDC__ < 0x550)   // BCB = 4
#pragma link "SHDocVw_OCX_4"
#endif

#if __BORLANDC__ >= 0x550   // BCB = 5, BCB = 6
#pragma link "SHDocVw_OCX"
#endif


#pragma resource "*.dfm"

TEBarMegaDemoMainForm *EBarMegaDemoMainForm;
char
  *sRichEditFoundResultCaption = "Information",
  *sRichEditTextNotFound = "The search text is not found.",
  *sRichEditReplaceAllResult = "Replaced %d occurances.";

//---------------------------------------------------------------------------
__fastcall TEBarMegaDemoMainForm::TEBarMegaDemoMainForm(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::FormCreate(TObject *Sender)
{
  const AnsiString Filter = "Rich Text Files (*.RTF)|*.RTF";

  dmCommonData->AboutFormClass = __classid(TEBarMegaDemoAboutForm);

  #if __BORLANDC__ > 0x540   // BCB version > 4
  HTML = new TCppWebBrowser(HTMLPanel);
  #else
  HTML = new TWebBrowserProxy(HTMLPanel);
  #endif


  HTML->OnDocumentComplete = DocumentComplete;
  HTML->OnProgressChange = ProgressChange;
  HTML->OnBeforeNavigate2 = BeforeNavigate;
  HTML->OnStatusTextChange = StatusTextChange;
  HTML->OnTitleChange = TitleChange;

  ((TWinControl*)HTML)->Parent = HTMLPanel;
  HTML->Align = alClient;

  Address = "";
  ShortDateFormat = "mm/dd/yyyy";
  UpdateCombo = true;
  OpenDialog->Filter = Filter;
  SaveDialog->Filter = Filter;
  OpenDialog->InitialDir = ExtractFilePath(ParamStr(0));
  SaveDialog->InitialDir = OpenDialog->InitialDir;
  Editor->Lines->Clear();
  PanelRE->Visible = false;
  SetModified(false);
  ShowItems(false);
  BarManager->LockUpdate = true;
  UpdateToolBar(0);
  BarManager->LockUpdate = false;
  HistoryIndex = -1;
  HistoryList = new TStringList;
  EBarMegaDemoMainDM->tblProducts->Close();
  EBarMegaDemoMainDM->tblContacts->Close();
  EBarMegaDemoMainDM->tblProducts->Open();
  EBarMegaDemoMainDM->tblContacts->Open();
  dxDate->Text = "";
  Editor->Lines->LoadFromFile("lipsum.rtf");
  SetModified(false);
  ShowItems(true);
  dxSideBarItemClick(NULL, dxSideBar->Groups->Items[0]->Items->Items[0]);
  dxSideBar->SelectedItem = dxSideBar->Groups->Items[0]->Items->Items[0];
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::UpdateToolBar( int index)
{
typedef
  Set <int, 0, 12> TVisibleItems;
const
  Boolean SunkenBorders[] = {False, False, True, False};
  TVisibleItems VisibleBars[] = {
    TVisibleItems () << 0,
    TVisibleItems () << 0 << 1 << 2 << 3 << 9,
    TVisibleItems () << 0 << 4 << 5 << 6 << 9,
    TVisibleItems () << 0 << 7 <<8};
  TVisibleItems VisibleCategories[] = {
    TVisibleItems () << 0 << 4 << 5,
    TVisibleItems () << 0 << 1 << 2 << 3 << 4 << 5,
    TVisibleItems () << 0 << 1 << 5 << 4 << 6 << 7 << 8 << 10 << 11,
    TVisibleItems () << 0 << 4 << 5 << 9 << 12};
int i;

  BarManager->SunkenBorder = SunkenBorders[index];

  for( i = 0; i < BarManager->Categories->Count ; i++)
   BarManager->CategoryVisible[i] = VisibleCategories[index].Contains(i);

  for( i = BarManager->Bars->Count - 1; i >= 0; i--)
   if ((! VisibleBars[index].Contains(i)) || (i == 0))
     {
       BarManager->Bars->Items[i]->Visible = false;
       BarManager->Bars->Items[i]->Hidden = true;
     };

  for( i = 0; i < BarManager->ItemCount; i++)
   if ((BarManager->Items[i]->Tag == 0 ) || (BarManager->Items[i]->Tag == index))
     BarManager->Items[i]->Visible = ivAlways;
   else
     BarManager->Items[i]->Visible = ivNever;

  for( i = 0; i < BarManager->Bars->Count; i++ )
   if (VisibleBars[index].Contains(i) || (i == 0))
     {
       BarManager->Bars->Items[i]->Visible = true;
       BarManager->Bars->Items[i]->Hidden = false;
     };
  Nb->PageIndex = index;
  dxBSIEStatus->Caption = "";
  dxBSStatus->Caption = "";
  dxBSPosition->Caption = "";
  dxBarProgress->Position = 0;
  dxBSIEStatus->Glyph = 0;
  if (index == 2)
    dxBSIEStatus->Glyph->Assign(Image->Picture->Bitmap);

}
void __fastcall TEBarMegaDemoMainForm::dxSideBarItemClick(TObject *Sender,
      TdxSideBarItem *Item)
{
 Caption = "ExpressBars Demo";
 LockWindowUpdate(EBarMegaDemoMainForm->Handle);
 BarManager->LockUpdate = true;
 UpdateToolBar(Item->Tag);
 BarManager->LockUpdate = false;
 LockWindowUpdate(0);
}
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::dxBarButtonNewClick(TObject *Sender)
{
  int Res;

 if (Editor->Modified) {
   Res = MessageDlg("Do you want to save the changes you made ?",
                     mtConfirmation, TMsgDlgButtons() << mbYes << mbNo << mbCancel, 0);
   switch (Res) {
     case mrYes : if (!SaveFile(false)) return; break;
     case mrCancel  : return;
   };
 };
 Editor->Lines->Clear();
 FileName = "";
 ShowItems(true);
}
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::dxBarButtonOpenClick(TObject *Sender)
{
  int Res;

  if (Editor->Modified) {
    Res = MessageDlg("Do you want to save the changes you made to \""+FileName+"\" ?",
                      mtConfirmation, TMsgDlgButtons() << mbYes << mbNo << mbCancel, 0);
    switch (Res) {
      case mrYes    : if (! SaveFile(false)) return; break;
      case mrCancel : return;
    };
  };

  OpenDialog->FileName = "";
  if (OpenDialog->Execute()) {
    FileName = OpenDialog->FileName;
    Editor->Lines->LoadFromFile(FileName);
    SetModified(false);
    ShowItems(true);
  };
}
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::dxBarButtonCloseClick(TObject *Sender)
{
  int Res;

  if (Editor->Modified) {
    Res = MessageDlg("Do you want to save the changes you made to \""+FileName+"\" ?",
                      mtConfirmation, TMsgDlgButtons() << mbYes << mbNo << mbCancel, 0);
    switch (Res) {
      case mrYes    : if (! SaveFile(false)) return; break;
      case mrCancel : return;
    };
  };
  Editor->Lines->Clear();
  ShowItems(false);
}
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::EditorChange(TObject *Sender)
{
  if (Editor == NULL) return;
  Editor->OnSelectionChange(Editor);
  SetModified(Editor->Modified);
  dxBarButtonUndo->Caption = "&Undo";
  dxBarButtonUndo->Enabled = SendMessage(Editor->Handle, EM_CANUNDO, 0, 0) != 0;
}
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::EditorSelectionChange(TObject *Sender)
{
  int Col, Row;

  Row = SendMessage(Editor->Handle, EM_LINEFROMCHAR, Editor->SelStart, 0);
  Col = Editor->SelStart - SendMessage(Editor->Handle, EM_LINEINDEX, Row, 0);

  FUpdating = true;

  dxBSPosition->Caption = "Line: "+IntToStr(Row + 1)+"   Col: "+IntToStr(Col + 1);

  dxBarButtonCopy->Enabled = Editor->SelLength > 0;
  dxBarButtonCut->Enabled = dxBarButtonCopy->Enabled;
  dxBarButtonPaste->Enabled = ((SendMessage(Editor->Handle, EM_CANPASTE, 0, 0) != 0) && dxBarButtonSave->Enabled);
  dxBarButtonClear->Enabled = dxBarButtonCopy->Enabled;

  dxBarComboFontSize->Text = IntToStr(Editor->SelAttributes->Size);
  dxBarComboFontName->Text = Editor->SelAttributes->Name;

  dxBarButtonBold->Down = Editor->SelAttributes->Style.Contains(fsBold);
  dxBarButtonItalic->Down = Editor->SelAttributes->Style.Contains(fsItalic);
  dxBarButtonUnderline->Down = Editor->SelAttributes->Style.Contains(fsUnderline);

  dxBarButtonBullets->Down = (bool)(Editor->Paragraph->Numbering);

  switch (Editor->Paragraph->Alignment) {
    case 0: dxBarButtonAlignLeft->Down = true; break;
    case 1: dxBarButtonAlignRight->Down = true; break;
    case 2: dxBarButtonCenter->Down = true; break;
  };

  dxBarButtonURLDetection->Down = (bool)(SendMessage(Editor->Handle, EM_GETAUTOURLDETECT, 0, 0));

  dxBarComboFontColor->Color = Editor->SelAttributes->Color;

  FUpdating = false;
}
//---------------------------------------------------------------------------

bool __fastcall TEBarMegaDemoMainForm::SaveFile(bool ASaveAs)
{
  bool Res;

  if (ASaveAs || (FileName == "")) {
    SaveDialog->FileName = FileName;
    Res = SaveDialog->Execute();
    if (! Res) return (Res);
    FileName = SaveDialog->FileName;
  };
  Editor->Lines->SaveToFile(FileName);
  SetModified(false);
  return(true);
};
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::SetModified(bool Value)
{
  Editor->Modified = Value;
  if (Value)
    dxBSStatus->Caption = "Modified";
  else
    dxBSStatus->Caption = "";
  if (FileName != "")
    dxBarButtonSave->Enabled = Value;
};
//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::ShowItems(bool AShow)
{
  TdxBarItemVisible AVisible;

  if (! AShow) {
    dxBSStatus->Caption = "";
    dxBSPosition->Caption = "";
  };
  BarManager->Groups[0]->Enabled = AShow;

  if (AShow) AVisible = ivAlways;
  else AVisible = ivInCustomizing;

  dxBarSubItemEdit->Visible = AVisible;
  dxBarSubItemFormat->Visible = AVisible;

  PanelRE->Visible = AShow;
  Editor->Repaint();
};

//---------------------------------------------------------------------------

void __fastcall TEBarMegaDemoMainForm::dxBarButtonExitClick(TObject *Sender)
{
  Close();
}

⌨️ 快捷键说明

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