📄 uflxmessages.pas
字号:
unit UFlxMessages;
{$IFDEF LINUX}{$INCLUDE ../FLXCOMPILER.INC}{$ELSE}{$INCLUDE ..\FLXCOMPILER.INC}{$ENDIF}
{$IFDEF LINUX}{$INCLUDE ../FLXCONFIG.INC}{$ELSE}{$INCLUDE ..\FLXCONFIG.INC}{$ENDIF}
interface
uses {$IFDEF FLX_VCL} Windows, {$ENDIF}
{$IFDEF ConditionalExpressions}{$if CompilerVersion >= 14} variants, varutils, {$IFEND}{$ENDIF} //Delphi 6 or above
{$IFNDEF ConditionalExpressions}ActiveX,{$ENDIF} //Delphi 5
Classes, SysUtils;
const
FLX_VAR_LOCALE_USER_DEFAULT = $400;
resourcestring
FieldStr='##';
DataSetStr='__';
VarStr='#.';
StrOpen='<';
StrClose='>';
ExtrasDelim='...';
MarkedRowStr='...delete row...'; //Remember to change ExtrasDelim if changing this
HPageBreakStr='...page break...'; //Remember to change ExtrasDelim if changing this
FullDataSetStr='*';
MainTxt='MAIN'; //This is not strictly necessary... just for checking the template
RecordCountPrefix='RC_';
DefaultDateTimeFormat='mm/dd/yyyy hh:mm';
FlexCelVersion='2.6.17';
{$IFDEF SPANISH}
{$INCLUDE FlxSpanish.inc}
{$ELSE}
{$IFDEF FRENCH}
{$INCLUDE FlxFrench.inc}
{$ELSE}
{$IFDEF ITALIAN}
{$INCLUDE FlxItalian.inc}
{$ELSE}
{$IFDEF ROMANIAN}
{$INCLUDE FlxRomanian.inc}
{$ELSE}
{$IFDEF PORTUGUESEBR}
{$INCLUDE FlxPortugueseBR.inc}
{$ELSE}
{$IFDEF CHINESE}
{$INCLUDE FlxChinese.inc}
{$ELSE}
{$IFDEF RUSSIAN}
{$INCLUDE FlxRussian.inc}
{$ELSE}
{$IFDEF GERMAN}
{$INCLUDE FlxGerman.inc}
{$ELSE}
{$IFDEF POLISH}
{$INCLUDE FlxPolish.inc}
{$ELSE}
{$IFDEF FINNISH}
{$INCLUDE FlxFinnish.inc}
{$ELSE}
{$INCLUDE FlxEnglish.inc}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
xls_Emf='EMF';
xls_Wmf='WMF';
xls_Jpeg='JPEG';
xls_Png='PNG';
FlexCelTempPrefix = 'flx';
type
TClientAnchor= packed record
Flag,
Col1, Dx1, Row1, Dy1,
Col2, Dx2, Row2, Dy2: word;
end;
PClientAnchor = ^TClientAnchor;
WidestringArray=array of widestring;
WideCharArray=array of widechar;
BooleanArray = Array of Boolean;
TPrinterDriverSettings = record
OperatingEnviroment: word;
//When OperatingEnviroment=0 (windows) you can cast this Data to a DevMode struct.
Data: array of byte;
end;
TExcelPaperSize = integer;
const
/// <summary>Not defined.</summary>
TExcelPaperSize_Undefined=0;
///<summary>Letter - 81/2"" x 11""</summary>
TExcelPaperSize_Letter=1;
///<summary>Letter small - 81/2"" x 11""</summary>
TExcelPaperSize_Lettersmall=2;
///<summary>Tabloid - 11"" x 17""</summary>
TExcelPaperSize_Tabloid=3;
///<summary>Ledger - 17"" x 11""</summary>
TExcelPaperSize_Ledger=4;
///<summary>Legal - 81/2"" x 14""</summary>
TExcelPaperSize_Legal=5;
///<summary>Statement - 51/2"" x 81/2""</summary>
TExcelPaperSize_Statement=6;
///<summary>Executive - 71/4"" x 101/2""</summary>
TExcelPaperSize_Executive=7;
///<summary>A3 - 297mm x 420mm</summary>
TExcelPaperSize_A3=8;
///<summary>A4 - 210mm x 297mm</summary>
TExcelPaperSize_A4=9;
///<summary>A4 small - 210mm x 297mm</summary>
TExcelPaperSize_A4small=10;
///<summary>A5 - 148mm x 210mm</summary>
TExcelPaperSize_A5=11;
///<summary>B4 (JIS) - 257mm x 364mm</summary>
TExcelPaperSize_B4_JIS=12;
///<summary>B5 (JIS) - 182mm x 257mm</summary>
TExcelPaperSize_B5_JIS=13;
///<summary>Folio - 81/2"" x 13""</summary>
TExcelPaperSize_Folio=14;
///<summary>Quarto - 215mm x 275mm</summary>
TExcelPaperSize_Quarto=15;
///<summary>10x14 - 10"" x 14""</summary>
TExcelPaperSize_s10x14=16;
///<summary>11x17 - 11"" x 17""</summary>
TExcelPaperSize_s11x17=17;
///<summary>Note - 81/2"" x 11""</summary>
TExcelPaperSize_Note=18;
///<summary>Envelope #9 - 37/8"" x 87/8""</summary>
TExcelPaperSize_Envelope9=19;
///<summary>Envelope #10 - 41/8"" x 91/2""</summary>
TExcelPaperSize_Envelope10=20;
///<summary>Envelope #11 - 41/2"" x 103/8""</summary>
TExcelPaperSize_Envelope11=21;
///<summary>Envelope #12 - 43/4"" x 11""</summary>
TExcelPaperSize_Envelope12=22;
///<summary>Envelope #14 - 5"" x 111/2""</summary>
TExcelPaperSize_Envelope14=23;
///<summary>C - 17"" x 22""</summary>
TExcelPaperSize_C=24;
///<summary>D - 22"" x 34""</summary>
TExcelPaperSize_D=25;
///<summary>E - 34"" x 44""</summary>
TExcelPaperSize_E=26;
///<summary>Envelope DL - 110mm x 220mm</summary>
TExcelPaperSize_EnvelopeDL=27;
///<summary>Envelope C5 - 162mm x 229mm</summary>
TExcelPaperSize_EnvelopeC5=28;
///<summary>Envelope C3 - 324mm x 458mm</summary>
TExcelPaperSize_EnvelopeC3=29;
///<summary>Envelope C4 - 229mm x 324mm</summary>
TExcelPaperSize_EnvelopeC4=30;
///<summary>Envelope C6 - 114mm x 162mm</summary>
TExcelPaperSize_EnvelopeC6=31;
///<summary>Envelope C6/C5 - 114mm x 229mm</summary>
TExcelPaperSize_EnvelopeC6_C5=32;
///<summary>B4 (ISO) - 250mm x 353mm</summary>
TExcelPaperSize_B4_ISO=33;
///<summary>B5 (ISO) - 176mm x 250mm</summary>
TExcelPaperSize_B5_ISO=34;
///<summary>B6 (ISO) - 125mm x 176mm</summary>
TExcelPaperSize_B6_ISO=35;
///<summary>Envelope Italy - 110mm x 230mm</summary>
TExcelPaperSize_EnvelopeItaly=36;
///<summary>Envelope Monarch - 37/8"" x 71/2""</summary>
TExcelPaperSize_EnvelopeMonarch=37;
///<summary>63/4 Envelope - 35/8"" x 61/2""</summary>
TExcelPaperSize_s63_4Envelope=38;
///<summary>US Standard Fanfold - 147/8"" x 11""</summary>
TExcelPaperSize_USStandardFanfold=39;
///<summary>German Std. Fanfold - 81/2"" x 12""</summary>
TExcelPaperSize_GermanStdFanfold=40;
///<summary>German Legal Fanfold - 81/2"" x 13""</summary>
TExcelPaperSize_GermanLegalFanfold=41;
///<summary>B4 (ISO) - 250mm x 353mm</summary>
TExcelPaperSize_B4_ISO_2=42;
///<summary>Japanese Postcard - 100mm x 148mm</summary>
TExcelPaperSize_JapanesePostcard=43;
///<summary>9x11 - 9"" x 11""</summary>
TExcelPaperSize_s9x11=44;
///<summary>10x11 - 10"" x 11""</summary>
TExcelPaperSize_s10x11=45;
///<summary>15x11 - 15"" x 11""</summary>
TExcelPaperSize_s15x11=46;
///<summary>Envelope Invite - 220mm x 220mm</summary>
TExcelPaperSize_EnvelopeInvite=47;
///<summary>Undefined - </summary>
///<summary>Letter Extra - 91/2"" x 12""</summary>
TExcelPaperSize_LetterExtra=50;
///<summary>Legal Extra - 91/2"" x 15""</summary>
TExcelPaperSize_LegalExtra=51;
///<summary>Tabloid Extra - 1111/16"" x 18""</summary>
TExcelPaperSize_TabloidExtra=52;
///<summary>A4 Extra - 235mm x 322mm</summary>
TExcelPaperSize_A4Extra=53;
///<summary>Letter Transverse - 81/2"" x 11""</summary>
TExcelPaperSize_LetterTransverse=54;
///<summary>A4 Transverse - 210mm x 297mm</summary>
TExcelPaperSize_A4Transverse=55;
///<summary>Letter Extra Transv. - 91/2"" x 12""</summary>
TExcelPaperSize_LetterExtraTransv=56;
///<summary>Super A/A4 - 227mm x 356mm</summary>
TExcelPaperSize_SuperA_A4=57;
///<summary>Super B/A3 - 305mm x 487mm</summary>
TExcelPaperSize_SuperB_A3=58;
///<summary>Letter Plus - 812"" x 1211/16""</summary>
TExcelPaperSize_LetterPlus=59;
///<summary>A4 Plus - 210mm x 330mm</summary>
TExcelPaperSize_A4Plus=60;
///<summary>A5 Transverse - 148mm x 210mm</summary>
TExcelPaperSize_A5Transverse=61;
///<summary>B5 (JIS) Transverse - 182mm x 257mm</summary>
TExcelPaperSize_B5_JIS_Transverse=62;
///<summary>A3 Extra - 322mm x 445mm</summary>
TExcelPaperSize_A3Extra=63;
///<summary>A5 Extra - 174mm x 235mm</summary>
TExcelPaperSize_A5Extra=64;
///<summary>B5 (ISO) Extra - 201mm x 276mm</summary>
TExcelPaperSize_B5_ISO_Extra=65;
///<summary>A2 - 420mm x 594mm</summary>
TExcelPaperSize_A2=66;
///<summary>A3 Transverse - 297mm x 420mm</summary>
TExcelPaperSize_A3Transverse=67;
///<summary>A3 Extra Transverse - 322mm x 445mm</summary>
TExcelPaperSize_A3ExtraTransverse=68;
///<summary>Dbl. Japanese Postcard - 200mm x 148mm</summary>
TExcelPaperSize_DblJapanesePostcard=69;
///<summary>A6 - 105mm x 148mm</summary>
TExcelPaperSize_A6=70;
///<summary>Letter Rotated - 11"" x 81/2""</summary>
TExcelPaperSize_LetterRotated=75;
///<summary>A3 Rotated - 420mm x 297mm</summary>
TExcelPaperSize_A3Rotated=76;
///<summary>A4 Rotated - 297mm x 210mm</summary>
TExcelPaperSize_A4Rotated=77;
///<summary>A5 Rotated - 210mm x 148mm</summary>
TExcelPaperSize_A5Rotated=78;
///<summary>B4 (JIS) Rotated - 364mm x 257mm</summary>
TExcelPaperSize_B4_JIS_Rotated=79;
///<summary>B5 (JIS) Rotated - 257mm x 182mm</summary>
TExcelPaperSize_B5_JIS_Rotated=80;
///<summary>Japanese Postcard Rot. - 148mm x 100mm</summary>
TExcelPaperSize_JapanesePostcardRot=81;
///<summary>Dbl. Jap. Postcard Rot. - 148mm x 200mm</summary>
TExcelPaperSize_DblJapPostcardRot=82;
///<summary>A6 Rotated - 148mm x 105mm</summary>
TExcelPaperSize_A6Rotated=83;
///<summary>B6 (JIS) - 128mm x 182mm</summary>
TExcelPaperSize_B6_JIS=88;
///<summary>B6 (JIS) Rotated - 182mm x 128mm</summary>
TExcelPaperSize_B6_JIS_Rotated=89;
///<summary>12x11 - 12"" x 11""</summary>
TExcelPaperSize_s12x11=90;
const
DefColWidthAdapt: integer=Round(256*8/7); //font used here is 8 pixels wide, not 7
//Printer Options
fpo_LeftToRight = $01; //Print over, then down
fpo_Orientation = $02; //0= landscape, 1=portrait
fpo_NoPls = $04; //if 1, then PaperSize, Scale, Res, VRes, Copies, and Landscape data have not been obtained from the printer, so they are not valid.
fpo_NoColor = $08; //1= Black and white
fpo_Draft = $10; //1= Draft quality
fpo_Notes = $20; //1= Print Notes
fpo_NoOrient = $40; //1=orientation not set
fpo_UsePage = $80; //1=use custom starting page number.
/// <summary>
/// List of internal range names.
/// On Excel, internal range names like "Print_Range" are stored as a 1 character string.
/// This is the list of the names and their value.
/// </summary>
InternalNameRange_Consolidate_Area = char($00);
InternalNameRange_Auto_Open = char($01);
InternalNameRange_Auto_Close = char($02);
InternalNameRange_Extract = char($03);
InternalNameRange_Database = char($04);
InternalNameRange_Criteria = char($05);
InternalNameRange_Print_Area = char($06);
InternalNameRange_Print_Titles = char($07);
InternalNameRange_Recorder = char($08);
InternalNameRange_Data_Form = char($09);
InternalNameRange_Auto_Activate = char($0A);
InternalNameRange_Auto_Deactivate = char($0B);
InternalNameRange_Sheet_Title = char($0C);
var
ColMult:extended=256/7; //36.6;
RowMult:extended=15;
type
TColorPaletteRange=1..56;
TXlsCellRange=record
Left, Top, Right, Bottom: integer;
end;
/// <summary>
/// An Excel named range.
/// </summary>
TXlsNamedRange=record
/// <summary>
/// The name of the range.
/// </summary>
Name: string;
/// <summary>
/// This is a formula defining the range. It can be used to define complex ranges.
/// For example you can use "=Sheet1!$A1:$B65536,Sheet1!$A1:$IV2".
/// </summary>
/// <remarks>
/// Do not use ranges like "A:B" this is not supported by FlexCel. Always use the full name (A1:B65536).
/// </remarks>
RangeFormula: string;
/// <summary>
/// Options of the range as an integer.
/// Bit Mask Description
/// 0 0001h = 1 if the name is hidden
/// 1 0002h = 1 if the name is a function
/// 2 0004h = 1 if the name is a Visual Basic procedure
/// 3 0008h = 1 if the name is a function or command name on a macro sheet
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -