📄 dbctrlseh.pas
字号:
end;
TDBEditEh = class(TCustomDBEditEh)
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 EditButtons;
property Enabled;
property EditMask;
property Font;
property Flat;
property ImeMode;
property ImeName;
property MaxLength;
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 Text;
property Visible;
property WantTabs;
property WantReturns;
property WordWrap;
property OnChange;
property OnClick;
{$IFDEF EH_LIB_5}
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 OnUpdateData;
property OnStartDock;
property OnStartDrag;
end;
{ TCustomDBDateTimeEditEh }
TDateTimeKindEh = (dtkDateEh, dtkTimeEh, dtkDateTimeEh, dtkCustomEh);
TElementMaskPosEh = record
Pos, Length: Integer;
Present: Boolean;
end;
TDateTimeElementsMaskPosEh = record
Year: TElementMaskPosEh;
Month: TElementMaskPosEh;
Day: TElementMaskPosEh;
Hour: TElementMaskPosEh;
Min: TElementMaskPosEh;
Sec: TElementMaskPosEh;
end;
TCustomDBDateTimeEditEh = class(TCustomDBEditEh)
private
FCalendarVisible: Boolean;
FDropDownCalendar: TWinControl;
FEditValidating: Boolean;
FInternalTextSetting: Boolean;
FKind: TDateTimeKindEh;
FValue: Variant;
FOnCloseUp: TCloseUpEventEh;
FOnDropDown: TNotifyEvent;
FEditFormat: String;
FDateTimeFormat: String;
function GetDropDownCalendar: TWinControl;
function IsEditFormatStored: Boolean;
function IsKindStored: Boolean;
procedure CMCancelMode(var Message: TCMCancelMode); message CM_CANCELMODE;
procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
procedure CMWantSpecialKey(var Message: TCMWantSpecialKey); message CM_WANTSPECIALKEY;
procedure ReadEditFormat(Reader: TReader);
procedure SetEditFormat(const Value: String);
procedure SetKind(const Value: TDateTimeKindEh);
procedure UpdateValueFromText;
procedure WMGetDlgCode(var Message: TMessage); message WM_GETDLGCODE;
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
procedure WriteEditFormat(Writer: TWriter);
protected
FDateTimeMaskPos: TDateTimeElementsMaskPosEh;
FFourDigitYear: Boolean;
function CreateEditButton: TEditButtonEh; override;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function GetDisplayTextForPaintCopy: String; override;
function GetVariantValue: Variant; override;
procedure ButtonDown(IsDownButton: Boolean); override;
procedure Change; override;
procedure DataChanged; override;
procedure DefineProperties(Filer: TFiler); override;
procedure EditButtonMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); override;
procedure FilterMRUItem(AText: String; var Accept: Boolean); override;
procedure IncrementItemAtCurPos(IsIncrease: Boolean);
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 UpdateFourDigitYear; virtual;
procedure WndProc(var Message: TMessage); override;
property DropDownCalendar: TWinControl read GetDropDownCalendar;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function DateTimeFormat: String;
procedure CloseUp(Accept: Boolean); override;
procedure DropDown; override;
procedure UpdateMask; virtual;
procedure ValidateEdit; override;
property CalendarVisible: Boolean read FCalendarVisible;
property EditFormat: String read FEditFormat write SetEditFormat stored False; //IsEditFormatStored;
property Kind: TDateTimeKindEh read FKind write SetKind stored IsKindStored;
property OnCloseUp: TCloseUpEventEh read FOnCloseUp write FOnCloseUp;
property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
end;
{ TDBDateTimeEditEh }
TDBDateTimeEditEh = class(TCustomDBDateTimeEditEh)
published
property Alignment;
property AlwaysShowBorder;
property Anchors;
property AutoSelect;
property AutoSize;
property BiDiMode;
property BorderStyle;
property Color;
property Constraints;
property Ctl3D;
property DataField;
property DataSource;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property EditButton;
property EditButtons;
property EditFormat;
property Font;
property Flat;
property ImeMode;
property ImeName;
property Kind;
property MRUList;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Value;
property Visible;
property OnButtonClick;
property OnButtonDown;
property OnChange;
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 OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnUpdateData;
property OnStartDock;
property OnStartDrag;
end;
{ TDropDownBoxEh }
TDropDownBoxEh = class(TPersistent)
private
FAlign: TDropDownAlign;
FAutoDrop: Boolean;
FRows: Integer;
FSizable: Boolean;
FWidth: Integer;
public
procedure Assign(Source: TPersistent); override;
published
property Align: TDropDownAlign read FAlign write FAlign default daLeft;
property AutoDrop: Boolean read FAutoDrop write FAutoDrop default False;
property Rows: Integer read FRows write FRows default 7;
property Sizable: Boolean read FSizable write FSizable default False;
property Width: Integer read FWidth write FWidth default 0;
end;
{ TCustomDBComboBoxEh }
TCustomDBComboBoxEh = class(TCustomDBEditEh)
private
FDropDownBox: TDropDownBoxEh;
FItemIndex: Integer;
FItems: TStrings;
FKeyItems: TStrings;
FListVisible: Boolean;
FOnNotInList: TNotInListEventEh;
FPopupListbox: TWinControl;
FOnCloseUp: TCloseUpEventEh;
FOnDropDown: TNotifyEvent;
function GetImages: TCustomImageList;
function GetPopupListbox: TWinControl;
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 ItemsChanged(Sender: TObject);
procedure KeyItemsChanged(Sender: TObject);
procedure ListMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure SetDropDownBox(const Value: TDropDownBoxEh);
procedure SetImages(const Value: TCustomImageList);
procedure SetItemIndex(const Value: Integer);
procedure SetItems(const Value: TStrings);
procedure SetKeyItems(const Value: TStrings);
procedure WMChar(var Message: TWMChar); message WM_CHAR;
procedure WMGetDlgCode(var Message: TMessage); message WM_GETDLGCODE;
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
protected
FItemsCount: Integer;
FKeyBased: Boolean;
FVarValue: Variant;
function ConvertDataText(const Value: String): String;
function CreateEditButton: TEditButtonEh; override;
function DefaultAlignment: TAlignment; override;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function GetDisplayTextForPaintCopy: String; override;
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 InternalSetItemIndex(const Value: Integer);
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 SetVariantValue(const VariantValue: Variant); override;
procedure UpdateControlReadOnly; override;
procedure UpdateItemIndex;
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 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 ListVisible: Boolean read FListVisible;
property OnCloseUp: TCloseUpEventEh read FOnCloseUp write FOnCloseUp;
property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
property OnNotInList: TNotInListEventEh read FOnNotInList write FOnNotInList;
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 ImeMode;
property ImeName;
property Images;
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 Visible;
property WordWrap;
property OnButtonClick;
property OnButtonDown;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -