📄 db.pas
字号:
class procedure CheckTypeSize(Value: Integer); override;
function GetAsBCD: TBcd; override;
function GetAsBoolean: Boolean; override;
function GetAsDateTime: TDateTime; override;
function GetAsFloat: Double; override;
function GetAsInteger: Longint; override;
function GetAsSqlTimeStamp: TSQLTimeStamp; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
function GetDefaultWidth: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
function GetValue(var Value: string): Boolean;
procedure SetAsBCD(const Value: TBcd); override;
procedure SetAsBoolean(Value: Boolean); override;
procedure SetAsDateTime(Value: TDateTime); override;
procedure SetAsFloat(Value: Double); override;
procedure SetAsInteger(Value: Longint); override;
procedure SetAsSQLTimeStamp(const Value: TSQLTimeStamp); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: string read GetAsString write SetAsString;
published
property EditMask;
property FixedChar: Boolean read FFixedChar write FFixedChar default False;
property Size default 20;
property Transliterate: Boolean read FTransliterate write FTransliterate default True;
end;
{ TWideStringField }
TWideStringField = class(TStringField)
protected
class procedure CheckTypeSize(Value: Integer); override;
procedure CopyData(Source, Dest: Pointer); override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetAsWideString: WideString;
function GetDataSize: Integer; override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
procedure SetAsWideString(const Value: WideString);
public
constructor Create(AOwner: TComponent); override;
property Value: WideString read GetAsWideString write SetAsWideString;
end;
{ TNumericField }
TNumericField = class(TField)
private
FDisplayFormat: string;
FEditFormat: string;
protected
procedure RangeError(Value, Min, Max: Extended);
procedure SetDisplayFormat(const Value: string);
procedure SetEditFormat(const Value: string);
public
constructor Create(AOwner: TComponent); override;
published
property Alignment default taRightJustify;
property DisplayFormat: string read FDisplayFormat write SetDisplayFormat;
property EditFormat: string read FEditFormat write SetEditFormat;
end;
{ TIntegerField }
TIntegerField = class(TNumericField)
private
FMinRange: Longint;
FMaxRange: Longint;
FMinValue: Longint;
FMaxValue: Longint;
procedure CheckRange(Value, Min, Max: Longint);
procedure SetMaxValue(Value: Longint);
procedure SetMinValue(Value: Longint);
protected
function GetAsFloat: Double; override;
function GetAsInteger: Longint; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
function GetValue(var Value: Longint): Boolean;
procedure SetAsFloat(Value: Double); override;
procedure SetAsInteger(Value: Longint); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: Longint read GetAsInteger write SetAsInteger;
published
property MaxValue: Longint read FMaxValue write SetMaxValue default 0;
property MinValue: Longint read FMinValue write SetMinValue default 0;
end;
{ TSmallintField }
TSmallintField = class(TIntegerField)
protected
function GetDataSize: Integer; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ TLargeintField }
Largeint = Int64;
TLargeintField = class(TNumericField)
private
FMinValue: Largeint;
FMaxValue: Largeint;
procedure CheckRange(Value, Min, Max: Largeint);
protected
function GetAsFloat: Double; override;
function GetAsInteger: Longint; override;
function GetAsLargeint: Largeint;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
function GetDefaultWidth: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
function GetValue(var Value: Largeint): Boolean;
procedure SetAsFloat(Value: Double); override;
procedure SetAsInteger(Value: Longint); override;
procedure SetAsLargeint(Value: Largeint);
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property AsLargeInt: LargeInt read GetAsLargeint write SetAsLargeint;
property Value: Largeint read GetAsLargeint write SetAsLargeint;
published
property MaxValue: Largeint read FMaxValue write FMaxValue default 0;
property MinValue: Largeint read FMinValue write FMinValue default 0;
end;
{ TWordField }
TWordField = class(TIntegerField)
protected
function GetDataSize: Integer; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ TAutoIncField }
TAutoIncField = class(TIntegerField)
public
constructor Create(AOwner: TComponent); override;
end;
{ TFloatField }
TFloatField = class(TNumericField)
private
FCurrency: Boolean;
FCheckRange: Boolean;
FPrecision: Integer;
FMinValue: Double;
FMaxValue: Double;
procedure SetCurrency(Value: Boolean);
procedure SetMaxValue(Value: Double);
procedure SetMinValue(Value: Double);
procedure SetPrecision(Value: Integer);
procedure UpdateCheckRange;
protected
function GetAsFloat: Double; override;
function GetAsInteger: Longint; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
procedure SetAsFloat(Value: Double); override;
procedure SetAsInteger(Value: Longint); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: Double read GetAsFloat write SetAsFloat;
published
{ Lowercase to avoid name clash with C++ Currency type }
property currency: Boolean read FCurrency write SetCurrency default False;
property MaxValue: Double read FMaxValue write SetMaxValue;
property MinValue: Double read FMinValue write SetMinValue;
property Precision: Integer read FPrecision write SetPrecision default 15;
end;
{ TCurrencyField }
TCurrencyField = class(TFloatField)
public
constructor Create(AOwner: TComponent); override;
published
{ Lowercase to avoid name clash with C++ Currency type }
property currency default True;
end;
{ TBooleanField }
TBooleanField = class(TField)
private
FDisplayValues: string;
FTextValues: array[Boolean] of string;
procedure LoadTextValues;
procedure SetDisplayValues(const Value: string);
protected
function GetAsBoolean: Boolean; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
function GetDefaultWidth: Integer; override;
procedure SetAsBoolean(Value: Boolean); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: Boolean read GetAsBoolean write SetAsBoolean;
published
property DisplayValues: string read FDisplayValues write SetDisplayValues;
end;
{ TDateTimeField }
TDateTimeField = class(TField)
private
FDisplayFormat: string;
function GetValue(var Value: TDateTime): Boolean;
procedure SetDisplayFormat(const Value: string);
protected
procedure CopyData(Source, Dest: Pointer); override;
function GetAsDateTime: TDateTime; override;
function GetAsFloat: Double; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
function GetDefaultWidth: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
procedure SetAsDateTime(Value: TDateTime); override;
procedure SetAsFloat(Value: Double); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: TDateTime read GetAsDateTime write SetAsDateTime;
published
property DisplayFormat: string read FDisplayFormat write SetDisplayFormat;
property EditMask;
end;
{ TSQLTimeStampField }
TSQLTimeStampField = class(TField)
private
FDisplayFormat: string;
function GetValue(var Value: TSQLTimeStamp): Boolean;
procedure SetDisplayFormat(const Value: string);
protected
procedure CopyData(Source, Dest: Pointer); override;
function GetAsSQLTimeStamp: TSQLTimeStamp; override;
function GetAsDateTime: TDateTime; override;
function GetAsFloat: Double; override;
function GetAsString: string; override;
function GetAsVariant: Variant; override;
function GetDataSize: Integer; override;
function GetDefaultWidth: Integer; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
procedure SetAsSQLTimeStamp(const Value: TSQLTimeStamp); override;
procedure SetAsDateTime(Value: TDateTime); override;
procedure SetAsFloat(Value: Double); override;
procedure SetAsString(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
property Value: TSQLTimeStamp read GetAsSQLTimeStamp write SetAsSQLTimeStamp;
published
property DisplayFormat: string read FDisplayFormat write SetDisplayFormat;
property EditMask;
end;
{ TDateField }
TDateField = class(TDateTimeField)
protected
function GetDataSize: Integer; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ TTimeField }
TTimeField = class(TDateTimeField)
protected
function GetDataSize: Integer; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ TBinaryField }
TBinaryField = class(TField)
protected
class procedure CheckTypeSize(Value: Integer); override;
procedure CopyData(Source, Dest: Pointer); override;
function GetAsString: string; override;
procedure GetText(var Text: string; DisplayText: Boolean); override;
function GetAsVariant: Variant; override;
procedure SetAsString(const Value: string); override;
procedure SetText(const Value: string); override;
procedure SetVarValue(const Value: Variant); override;
public
constructor Create(AOwner: TComponent); override;
published
property Size default 16;
end;
{ TBytesField }
TBytesField = class(TBinaryField)
protected
function GetDataSize: Integer; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ TVarBytesField }
TVarBytesField = class(TBytesField)
protected
function GetDataSize: Integer; override;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -