📄 dbfloatedit.pas
字号:
unit DBFloatEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Db;
{$INCLUDE MPDELVER.INC}
type
TCustomDBFloatEdit = class(TCustomMaskEdit)
private
FDataLink: TFieldDataLink;
FCanvas: TControlCanvas;
FAlignment: TAlignment;
FFocused: Boolean;
// ES
FAdditionalDecimalSeparator: char;
FDigits : Byte;
FMin,FMax : Extended;
FDec : Char;
FErrorText : string;
FOldVal : Extended;
FTempValue : Extended;
// ES
FOnEnterPress: TKeyPressEvent;
procedure ActiveChange(Sender: TObject);
procedure DataChange(Sender: TObject);
procedure EditingChange(Sender: TObject);
function GetDataField: string;
function GetDataSource: TDataSource;
function GetField: TField;
function GetReadOnly: Boolean;
function GetTextMargins: TPoint;
procedure ResetMaxLength;
procedure SetDataField(const Value: string);
procedure SetDataSource(Value: TDataSource);
procedure SetFocused(Value: Boolean);
procedure SetReadOnly(Value: Boolean);
procedure UpdateData(Sender: TObject);
procedure WMCut(var Message: TMessage); message WM_CUT;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
procedure WMUndo(var Message: TMessage); message WM_UNDO;
procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
// ES
procedure SetAlignment(AValue:TAlignment);
procedure ShowError;
function GetText: string;
procedure SetValue(AValue : Extended);
procedure SetMin(AValue : Extended);
procedure SetMax(AValue : Extended);
procedure SetDigits(AValue : Byte);
function GetValue : Extended;
// ES
function GetAbout: string; virtual;
procedure SetAbout(const Value: string);
protected
// ES
property Digits: Byte read FDigits write SetDigits;
property Text: string read GetText;
property Min : Extended read FMin write SetMin;
property Max : Extended read FMax write SetMax;
property ErrorMessage :string read FErrorText write FErrorText;
property AdditionalDecimalSeparator: char read FAdditionalDecimalSeparator write FAdditionalDecimalSeparator default #0;
property Alignment: TAlignment read FAlignment write SetAlignment default taRightJustify;
// ES
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;
property ReadOnly: Boolean read GetReadOnly write SetReadOnly default False;
procedure Change; override;
function EditCanModify: Boolean; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure Loaded; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure Reset; override;
procedure DoEnter;override;
procedure DoExit;override;
property Value : Extended read GetValue write SetValue;
property OnEnterPress: TKeyPressEvent read FOnEnterPress write
FOnEnterPress;
property About: string read GetAbout write SetAbout stored false;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function ExecuteAction(Action: TBasicAction): Boolean; override;
function UpdateAction(Action: TBasicAction): Boolean; override;
property Field: TField read GetField;
end;
TDBFloatEdit = class(TCustomDBFloatEdit)
published
property About;
property Digits;
property Text;
property Min;
property Max;
property ErrorMessage;
property Alignment;
property AdditionalDecimalSeparator;
property OnEnterPress;
property Anchors;
property AutoSelect;
property AutoSize;
property BiDiMode;
property BorderStyle;
property CharCase;
property Color;
property Constraints;
property Ctl3D;
property DataField;
property DataSource;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Font;
property ImeMode;
property ImeName;
property MaxLength;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PasswordChar;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property OnChange;
property OnClick;
{$IFDEF DELPHI5UP}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
procedure Register;
implementation
{$IFNDEF DELPHI6UP}
uses FLEdit; // for TryStrToFloat
{$ENDIF}
const
NO_TEXT = '';
SR_VER = '08-07-2004';
SR_COPY =
'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -