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

📄 featuresdemomain.cpp

📁 DevExpress公司出品的Borland Delphi和C++ Builder的控件(包含完整源代码)。 ExpressSpreadSheet:交叉数据表格控件。 一款Delphi
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdlib.h>
#pragma hdrstop
#include "FeaturesDemoMain.h"
#include "FeatureChild.h"
#include <cxSSData.hpp>
#include <cxSSUtils.hpp>
#include <cxSSRes.hpp>
#include <winuser.h>
#include "extctrls.hpp"
#include <assert.h>
#include "FeatureModify.h"
//---------------------------------------------------------------------------

#pragma package(smart_init)
#pragma resource "*.dfm"

TFeaturesMainForm *FeaturesMainForm;
//---------------------------------------------------------------------------
__fastcall TFeaturesMainForm::TFeaturesMainForm(TComponent* Owner)
  : TForm(Owner)
{
  TForm::TForm(Owner);
  cbxFont->Items->Assign(Screen->Fonts);
  cbxFont->Text = "Tahoma";
  cbxSize->Text = "10";
  FSummaryItemHeight = 10;
  #if __BORLANDC__ >= 0x0560
    pmRedo->AutoHotkeys = maManual;
    pmUndo->AutoHotkeys = maManual;
  #endif
}

//---------------------------------------------------------------------------
void __fastcall TFeaturesMainForm::NewSheet(String SheetName)
{
  TFeatureChildForm* Child;
	Child = new TFeatureChildForm(this);
  if (SheetName == "")
  	Child->Caption = "WorkBook - " + IntToStr(this->MDIChildCount);
  else
    Child->Caption = ExtractFileName(SheetName);
  Child->cxSpreadSheetBook->OnSetSelection = cxSpreadBookSetSelection;
  Child->SetSelection();
}

void __fastcall TFeaturesMainForm::actNewExecute(TObject *Sender)
{
  NewSheet("");
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actCloseWorkBookExecute(TObject *Sender)
{
  ActiveMDIChild->Close();
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actExitExecute(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::SaveSpreadSheet1Click(TObject *Sender)
{
  String FileName;
  if(OpenDialog->Execute())
  {
    FileName = ChangeFileExt(OpenDialog->FileName, ".xls");
    SheetBook->SaveToFile(FileName);
    ActiveMDIChild->Caption = FileName;
  }
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actAutomaticCalcExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->AutoRecalc = ((TCustomAction*)Sender)->Checked;
  if (SheetBook->AutoRecalc)
      SheetBook->Recalc();
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actRecalcFormulasExecute(TObject *Sender)
{
  CheckMenuItem(Sender); 
  SheetBook->Recalc();
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actCopyExecute(TObject *Sender)
{
  TRect rec;
  rec = SheetBook->ActiveSheet->SelectionRect;
  SheetBook->ActiveSheet->Copy(rec, false);
}
//---------------------------------------------------------------------------


void __fastcall TFeaturesMainForm::AlwaysEnabled(TObject *Sender)
{
  ((TCustomAction*)Sender)->Enabled = true;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actCutExecute(TObject *Sender)
{
  TRect rec;
  rec = SheetBook->SelectionRect;
  SheetBook->ActiveSheet->Copy(rec, true);
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actPasteExecute(TObject *Sender)
{
  TRect rec;
  rec = SheetBook->SelectionRect;
  SheetBook->ActiveSheet->Paste(Point(rec.left, rec.top));
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::edtCellEditChange(TObject *Sender)
{
  if (FIsUpdate) return;
  TcxSSCellObject *CellObject = ActiveSpreadSheet->GetCellObject(ActiveSpreadSheet->SelectionRect.Left,
    ActiveSpreadSheet->SelectionRect.Top);
  try {
    CellObject->SetCellText(((TEdit*)Sender)->Text, false);
  }
  __finally {
    delete CellObject;
  }
  SheetBook->UpdateControl();
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::edtCellEditExit(TObject *Sender)
{
  TcxSSCellObject *CellObject = ActiveSpreadSheet->GetCellObject(ActiveSpreadSheet->SelectionRect.Left,
    ActiveSpreadSheet->SelectionRect.Top);
  try {
    CellObject->Text = CellObject->Text;
  }
  __finally {
    delete CellObject;
  }
  SheetBook->UpdateControl();
  SheetBook->SetFocus();
  cxSpreadBookSetSelection(this, ActiveSpreadSheet);
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::SetStates()
{
  TFontStyles AStyle;
  TcxSSCellObject *CellObject = ActiveSpreadSheet->GetCellObject(ActiveSpreadSheet->SelectionRect.Left,
    ActiveSpreadSheet->SelectionRect.Top);
    try
    {
      tbLeftAlign->Down =  (CellObject->DisplayTextAlignment == dtaLEFT) ||
        (CellObject->DisplayTextAlignment == dtaFILL) || (CellObject->DisplayTextAlignment == dtaJUSTIFY);
      tbCenterAlign->Down = CellObject->DisplayTextAlignment == dtaCENTER;
      tbRightAlign->Down = CellObject->DisplayTextAlignment == dtaRIGHT;

      AStyle = CellObject->Style->Font->Style;

      tbBold->Down = AStyle.Contains(fsBold);
      tbItalic->Down = AStyle.Contains(fsItalic);
      tbUnderline->Down = AStyle.Contains(fsUnderline);
      tbStrikeOut->Down = AStyle.Contains(fsStrikeOut);

      edtCellEdit->Text = CellObject->Text;
      cbxFont->Text = CellObject->Style->Font->Name;
      cbxSize->Text = IntToStr(CellObject->Style->Font->Size);
    }
    __finally
    {
      delete CellObject;
    }
    {
      actBeveledLookandFeel->Checked = SheetBook->PainterType == ptOfficeXPStyle;
      actBufferedpaint->Checked = SheetBook->BufferedPaint;
      actShowcaptions->Checked = SheetBook->ShowCaptionBar;
      actShowgrid->Checked = SheetBook->ShowGrid;
      actShowheaders->Checked = SheetBook->ShowHeaders;
      actShowformulas->Checked = SheetBook->ShowFormulas;
      actR1C1Referencestyle->Checked = SheetBook->R1C1ReferenceStyle;
      actAutomaticCalc->Checked = SheetBook->AutoRecalc;
    }
}
String __fastcall TFeaturesMainForm::GetCellText(TRect SelectionRect, bool R1C1)
{
  return SheetBook->CellsNameByRef(SheetBook->ActivePage, SelectionRect, true);
}

void __fastcall TFeaturesMainForm::cxSpreadBookSetSelection(TObject *Sender, TcxSSBookSheet *ASheet)
{
  try {
    FIsUpdate = true;
    SetStates();
    pnCellsRect->Caption = GetCellText(ASheet->SelectionRect, SheetBook->R1C1ReferenceStyle);
    }
  __finally{
    FIsUpdate = False;
   }
}

void __fastcall TFeaturesMainForm::cbxSizeKeyPress(TObject *Sender, char &Key)
{
  if (Key == 13)
    _WINUSER_::SetFocus(SheetBook->Handle);
  else
    if ((Key < 48) || (Key > 58))
      Key = 0;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actBeveledLookandFeelExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->PainterType = (TcxSSPainterType)((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actBufferedpaintExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->BufferedPaint = ((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actShowcaptionsExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->ShowCaptionBar = ((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actShowgridExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->ShowGrid = ((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actShowheadersExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->ShowHeaders = ((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actShowformulasExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->ShowFormulas = ((TCustomAction*)Sender)->Checked;
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::actR1C1ReferencestyleExecute(TObject *Sender)
{
  if (IsUpdate) return;
  CheckMenuItem(Sender);
  SheetBook->R1C1ReferenceStyle = ((TCustomAction*)Sender)->Checked;
  pnCellsRect->Caption = GetCellText(ActiveSpreadSheet->SelectionRect, SheetBook->R1C1ReferenceStyle);
}
//---------------------------------------------------------------------------

void __fastcall TFeaturesMainForm::SetValue(TStyleValues AValueSet, TFontStyles AStyles, TStyleValue AFlag, TFontStyle ANeedStyle,
    TFontStyles *ASetStyles)
{
  if (AValueSet.Contains(AFlag)) {
    if (AStyles.Contains(ANeedStyle))
      ASetStyles->operator <<(ANeedStyle);
    else
      ASetStyles->operator >>(ANeedStyle);
  }
}

void __fastcall TFeaturesMainForm::SetCellsStyle(TStyleValues AValuesSet, TcxHorzTextAlign AAlign,
  int AFontSize, String AFontName, TFontStyles AStyles){
  TFontStyles AStyle;
  int i, j;
  try {
    SheetBook->BeginUpdate();
    int lf = ActiveSpreadSheet->SelectionRect.left;
    int rg = ActiveSpreadSheet->SelectionRect.right;
    int tp = ActiveSpreadSheet->SelectionRect.top;
    int bt = ActiveSpreadSheet->SelectionRect.bottom;
    TcxSSCellObject *CellObject;
      for (i = lf; i <= rg; i++)

⌨️ 快捷键说明

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