📄 dbctrlseh.pas
字号:
FItemsCount: Integer;
FKeyBased: Boolean;
FVarValue: Variant;
FDefaultItemIndex: Integer;
function ConvertDataText(const Value: String): String;
function CreateEditButton: TEditButtonEh; override;
function DefaultAlignment: TAlignment; override;
function DefaultImageIndex: Integer; override;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function GetDisplayTextForPaintCopy: String; override;
function GetPopupListbox: TWinControl;
function GetVariantValue: Variant; override;
function IsValidChar(InputChar: Char): Boolean; override;
function LocateStr(Str: String; PartialKey: Boolean): Boolean; virtual;
function ProcessSearchStr(Str: String): Boolean; virtual;
function TextListIndepended: Boolean;
function TraceMouseMoveForPopupListbox(Sender: TObject; Shift: TShiftState; X, Y: Integer): Boolean;
procedure ButtonDown(IsDownButton: Boolean); override;
procedure Change; override;
procedure Click; override;
procedure DataChanged; override;
procedure EditButtonClick(Sender: TObject); override;
procedure EditButtonMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); override;
procedure GetItemsList; virtual;
procedure InternalSetItemIndex(const Value: Integer); virtual;
procedure InternalSetText(AText: String); override;
procedure InternalSetValue(AValue: Variant); override;
procedure InternalUpdatePostData; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure ResetMaxLength; override;
procedure PopupListboxGetImageIndex(Sender: TObject; ItemIndex: Integer; var ImageIndex: Integer);
procedure SetVariantValue(const VariantValue: Variant); override;
procedure UpdateControlReadOnly; override;
procedure UpdateItemIndex;
procedure UpdateImageIndex; override;
procedure UpdateItems;
procedure WndProc(var Message: TMessage); override;
property PopupListbox: TWinControl read GetPopupListbox;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Clear; {$IFDEF EH_LIB_5} override; {$ELSE} reintroduce; {$ENDIF}
procedure CloseUp(Accept: Boolean); override;
procedure DefaultHandler(var Message); override;
procedure DropDown; override;
procedure SelectNextValue(IsPrior: Boolean);
procedure UpdateData; override;
property DropDownBox: TDropDownBoxEh read FDropDownBox write SetDropDownBox;
property HighlightRequired;
property Images: TCustomImageList read GetImages write SetImages;
property ItemIndex: Integer read FItemIndex write SetItemIndex;
property Items: TStrings read FItems write SetItems;
property KeyItems: TStrings read FKeyItems write SetKeyItems;
property PopupListboxClass: TWinControlClass read FPopupListboxClass write FPopupListboxClass;
property ListVisible: Boolean read FListVisible;
property OnCloseUp: TCloseUpEventEh read FOnCloseUp write FOnCloseUp;
property OnClosingUp: TAcceptEventEh read FOnClosingUp write FOnClosingUp;
property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
property OnGetItemsList: TNotifyEvent read FOnGetItemsList write FOnGetItemsList;
property OnNotInList: TNotInListEventEh read FOnNotInList write FOnNotInList;
property OnGetItemImageIndex: TListGetImageIndexEventEh read FOnGetItemImageIndex write FOnGetItemImageIndex;
end;
{ TDBComboBoxEh }
TDBComboBoxEh = class(TCustomDBComboBoxEh)
published
property Alignment;
property AlwaysShowBorder;
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 DropDownBox;
property Enabled;
property EditButton;
property EditButtons;
property EditMask;
property Font;
property Flat;
property HighlightRequired;
property Images;
property ImeMode;
property ImeName;
property Items;
property KeyItems;
property MaxLength;
property MRUList;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Text;
property Tooltips;
property Visible;
property WordWrap;
property OnButtonClick;
property OnButtonDown;
property OnChange;
property OnCheckDrawRequiredState;
property OnClick;
property OnCloseUp;
{$IFDEF EH_LIB_5}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnDropDown;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGetImageIndex;
property OnGetItemImageIndex;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnNotInList;
property OnUpdateData;
property OnStartDock;
property OnStartDrag;
end;
{ TCustomDBNumberEdit }
TDBNumberValue = (evDisplayFormatEh, evCurrencyEh, evMaxValueEh, evMinValueEh);
TDBNumberValues = set of TDBNumberValue;
TCustomDBNumberEditEh = class(TCustomDBEditEh)
private
FAssignedValues: TDBNumberValues;
FCalculatorVisible: Boolean;
FCurrency: Boolean;
FDecimalPlaces: Cardinal;
FDisplayFormat: String;
FDropDownCalculator: TWinControl;
FEditFormat: String;
FIncrement: Extended;
FInternalTextSetting: Boolean;
FMinValue, FMaxValue: Extended;
FOnCloseUp: TCloseUpEventEh;
FOnDropDown: TNotifyEvent;
FValue: Variant;
// FFormatting: Boolean;
function CheckValue(NewValue: Extended): Extended;
function DisplayFormatToEditFormat(const AFormat: string): string;
function GetCurrency: Boolean;
function GetDisplayFormat: string;
function GetMaxValue: Extended;
function GetMinValue: Extended;
function IsCurrencyStored: Boolean;
function IsDisplayFormatStored: Boolean;
function IsIncrementStored: Boolean;
function IsMaxValueStored: Boolean;
function IsMinValueStored: Boolean;
function TextToValText(const AValue: string): string;
procedure CMCancelMode(var Message: TCMCancelMode); message CM_CANCELMODE;
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
procedure CMWantSpecialKey(var Message: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure SetCurrency(const Value: Boolean);
procedure SetDecimalPlaces(Value: Cardinal);
procedure SetDisplayFormat(const Value: string);
procedure SetMaxValue(AValue: Extended);
procedure SetMinValue(AValue: Extended);
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
protected
function CreateEditButton: TEditButtonEh; override;
function DefaultAlignment: TAlignment; override;
function DefaultCurrency: Boolean;
function DefaultDisplayFormat: String;
function DefaultMaxValue: Extended;
function DefaultMinValue: Extended;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function FormatDisplayText(Value: Extended): string;
function GetDisplayText: string; virtual;
function GetDropDownCalculator: TWinControl; virtual;
function GetVariantValue: Variant; override;
function IsValidChar(Key: Char): Boolean; override;
procedure ButtonDown(IsDownButton: Boolean); override;
procedure Change; override;
procedure CreateParams(var Params: TCreateParams); override;
procedure DataChanged; override;
procedure InternalSetControlText(AText: String);
procedure InternalSetText(AText: String); override;
procedure InternalSetValue(AValue: Variant); override;
procedure InternalUpdatePostData; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure ReformatEditText(NewText: String); dynamic;
procedure UpdateValueFromText;
procedure WndProc(var Message: TMessage); override;
property AssignedValues: TDBNumberValues read FAssignedValues;
property currency: Boolean read GetCurrency write SetCurrency stored IsCurrencyStored;
property DecimalPlaces: Cardinal read FDecimalPlaces write SetDecimalPlaces default 2;
property DisplayFormat: String read GetDisplayFormat write SetDisplayFormat stored IsDisplayFormatStored;
property DropDownCalculator: TWinControl read GetDropDownCalculator;
property Increment: Extended read FIncrement write FIncrement stored IsIncrementStored;
property MaxLength default 0;
property MaxValue: Extended read GetMaxValue write SetMaxValue stored IsMaxValueStored;
property MinValue: Extended read GetMinValue write SetMinValue stored IsMinValueStored;
// property Formatting: Boolean read FFormatting;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure CloseUp(Accept: Boolean); override;
procedure DropDown; override;
property CalculatorVisible: Boolean read FCalculatorVisible;
// procedure Clear; override;
property HighlightRequired;
procedure IncrementValue(IsIncrease: Boolean);
property DisplayText: string read GetDisplayText;
property OnCloseUp: TCloseUpEventEh read FOnCloseUp write FOnCloseUp;
property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
end;
{ TNumberEdit }
TDBNumberEditEh = class(TCustomDBNumberEditEh)
published
property Alignment;
property AlwaysShowBorder;
property Anchors;
property AutoSelect;
property AutoSize;
property BiDiMode;
property BorderStyle;
property Color;
property Constraints;
property Ctl3D;
property currency;
property DataField;
property DataSource;
property DecimalPlaces;
property DisplayFormat;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property EditButton;
property EditButtons;
property Font;
property Flat;
property HighlightRequired;
property Images;
property ImeMode;
property ImeName;
property Increment;
//property MaxLength;
property MaxValue;
property MinValue;
property MRUList;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PasswordChar;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Tooltips;
property Value;
property Visible;
property OnButtonClick;
property OnButtonDown;
property OnChange;
property OnCheckDrawRequiredState;
property OnClick;
{$IFDEF EH_LIB_5}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGetImageIndex;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnUpdateData;
property OnStartDock;
property OnStartDrag;
end;
{ TCustomDBCheckBoxEh }
TCustomDBCheckBoxEh = class(TButtonControl)
private
FAlignment: TLeftRight;
FAllowGrayed: Boolean;
FAlwaysShowBorder: Boolean;
FClicksDisabled: Boolean;
FDataLink: TFieldDataLinkEh;
FFlat: Boolean;
FModified: Boolean;
FMouseAboveControl: Boolean;
FOnUpdateData: TUpdateDataEventEh;
FState: TCheckBoxState;
FValueCheck: string;
FValueUncheck: string;
FCanvas: TCanvas;
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
function GetDataField: string;
function GetDataSource: TDataSource;
function GetField: TField;
function GetFieldState: TCheckBoxState;
function GetModified: Boolean;
function GetReadOnly: Boolean;
// function IsCheckedStored: Boolean;
function IsStateStored: Boolean;
function ValueMatch(const ValueList, Value: string): Boolean;
procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure CMExit(var Message: TCMExit); message CM_EXIT;
{$IFNDEF CIL}
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
{$ENDIF}
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
procedure CMWantSpecialKey(var Message: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
procedure DataChange(Sender: TObject);
procedure InternalUpdateData(Sender: TObject);
procedure SetAlignment(const Value: TLeftRight);
procedure SetAlwaysShowBorder(const Value: Boolean);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -