📄 featuresdemomain.cpp
字号:
//---------------------------------------------------------------------------
#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 + -