cxedit.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,387 行 · 第 1/5 页
PAS
1,387 行
function GetOwner: TPersistent; override;
function GetStoredValue: TcxEditValue; virtual;
procedure Reset; virtual;
procedure SetInternalDisplayValue(const Value: TcxEditValue);
procedure SetDisplayValue(const Value: TcxEditValue); virtual;
function SetEditMode: Boolean; virtual;
procedure SetStoredValue(const Value: TcxEditValue); virtual;
property Edit: TcxCustomEdit read FEdit;
public
constructor Create(AEdit: TcxCustomEdit); virtual;
destructor Destroy; override;
function CanCheckEditorValue: Boolean; virtual;
function CanPostEditorValue: Boolean; virtual;
function ExecuteAction(Action: TBasicAction): Boolean; virtual;
class function GetDefaultValuesProviderClass: TcxCustomEditDefaultValuesProviderClass; virtual;
procedure SetModified; virtual;
function UpdateAction(Action: TBasicAction): Boolean; virtual;
procedure UpdateDisplayValue; virtual;
procedure UpdateNotConnectedDBEditDisplayValue; virtual;
property DisplayValue: TcxEditValue read GetDisplayValue write SetDisplayValue;
property Editing: Boolean read GetEditing;
property IDefaultValuesProvider: IcxEditDefaultValuesProvider read GetIDefaultValuesProvider;
property IsDataAvailable: Boolean read GetIsDataAvailable;
property Modified: Boolean read GetModified;
property StoredValue: TcxEditValue read GetStoredValue write SetStoredValue;
end;
TcxEditDataBindingClass = class of TcxEditDataBinding;
{ TcxCustomEdit }
TcxEditModifiedState = record
Modified: Boolean;
ModifiedAfterEnter: Boolean;
end;
{ TcxCustomEditData }
TcxCustomEditData = class(TObject)
private
FCleared: Boolean;
FEdit: TcxCustomEdit;
FFreeNotificator: TcxFreeNotificator;
procedure FreeNotification(AComponent: TComponent);
protected
property Cleared: Boolean read FCleared write FCleared;
public
constructor Create(AEdit: TcxCustomEdit); virtual;
destructor Destroy; override;
procedure Clear;
end;
TcxCustomEditDataClass = class of TcxCustomEditData;
{ TcxEditChangeEventsCatcher }
TcxEditChangeEventsCatcher = class
private
FEdit: TcxCustomEdit;
FLockCount: Integer;
FOnChangeEvent: Boolean;
FOnEditValueChangedEvent: Boolean;
public
property OnChangeEvent: Boolean read FOnChangeEvent write FOnChangeEvent;
property OnEditValueChangedEvent: Boolean read FOnEditValueChangedEvent
write FOnEditValueChangedEvent;
constructor Create(AEdit: TcxCustomEdit);
function IsLocked: Boolean;
procedure Lock(ALock: Boolean; AInvokeChangedOnUnlock: Boolean = True);
end;
TcxCustomEdit = class(TcxContainer, IUnknown, IcxEditRepositoryItemListener,
IdxSkinSupport, IdxSpellCheckerSupport)
private
FAutoSize: Boolean;
FCaptureButtonVisibleIndex: Integer;
FChangeEventsCatcher: TcxEditChangeEventsCatcher;
FClickLockCount: Integer;
FDblClickTimer: TcxTimer;
FEditData: TcxCustomEditData;
FEditModeSetting: Boolean;
FEditValueChangingLockCount: Integer;
FFocused: Boolean;
FHandleAllocating: Boolean;
FInnerEdit: IcxCustomInnerEdit;
FInnerEditDefWindowProc: Pointer;
FIsFirstAutoWidth: Boolean;
FIsBarControl: Boolean;
FIsContentParamsInitialized: Boolean;
FIsEditValidated: Boolean;
FIsEditValidating: Boolean;
FIsEditValueResetting: Boolean;
FIsEscapeDown: Boolean;
FIsJustCreated: Boolean;
FIsInplace: Boolean;
FIsPosting: Boolean;
FKeyboardAction: Boolean;
FLockValidate: Integer;
FModified: Boolean;
FModifiedAfterEnter: Boolean;
FObjectInstance: Pointer;
FPrevEditValue: TcxEditValue;
FPrevModifiedList: array of TcxEditModifiedState;
FPropertiesEvents: TNotifyEvent;
FRepositoryItem: TcxEditRepositoryItem;
FTransparent: Boolean;
FUpdate: Boolean;
FValidateErrorProcessing: Boolean;
FOnAfterKeyDown: TKeyEvent;
FOnEditing: TcxEditEditingEvent;
FOnPostEditValue: TNotifyEvent;
function CheckButtonShortCuts(AKey: Integer): Boolean;
procedure DblClickTimerHandler(Sender: TObject);
procedure DoClearEditData(AEditData: TcxCustomEditData);
function GetActiveProperties: TcxCustomEditProperties;
function GetEditActiveStyle: TcxCustomEditStyle;
function GetHeight: Integer;
function GetInternalStyle(AState: TcxContainerStateItem): TcxCustomEditStyle;
function GetStyle: TcxEditStyle;
function GetStyleDisabled: TcxEditStyle;
function GetStyleFocused: TcxEditStyle;
function GetStyleHot: TcxEditStyle;
function GetViewInfo: TcxCustomEditViewInfo;
procedure InitContentParams;
procedure InternalCanResize(var ANewWidth, ANewHeight: Integer);
function IsAutoWidth: Boolean;
procedure ReadHeight(Reader: TReader);
procedure ReadWidth(Reader: TReader);
procedure SetDataBinding(Value: TcxEditDataBinding);
procedure SetHeight(Value: Integer);
procedure SetInternalStyle(AState: TcxContainerStateItem;
Value: TcxCustomEditStyle);
procedure SetModified(Value: Boolean);
procedure SetModifiedAfterEnter(Value: Boolean);
procedure SetModifiedAfterEnterValue(Value: Boolean);
procedure SetProperties(Value: TcxCustomEditProperties);
procedure SetRepositoryItem(Value: TcxEditRepositoryItem);
procedure SetReplicatableFlag;
procedure SetStyle(Value: TcxEditStyle);
procedure SetStyleDisabled(Value: TcxEditStyle);
procedure SetStyleFocused(Value: TcxEditStyle);
procedure SetStyleHot(Value: TcxEditStyle);
procedure SetTransparent(Value: Boolean);
procedure WriteHeight(Writer: TWriter);
procedure WriteWidth(Writer: TWriter);
function GetHintText(APart: Integer): string;
procedure WMCopy(var Message: TMessage); message WM_COPY;
procedure WMCut(var Message: TMessage); message WM_CUT;
procedure CMHintShow(var Message: TCMHintShow); message CM_HINTSHOW;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
protected
FDataBinding: TcxEditDataBinding;
FEditValue: TcxEditValue;
FProperties: TcxCustomEditProperties;
FSettingEditWindowRegion: Boolean;
function CanContainerHandleTabs: Boolean; override;
function CanResize(var NewWidth, NewHeight: Integer): Boolean; override;
procedure Click; override;
procedure DblClick; override;
procedure DefineProperties(Filer: TFiler); override;
procedure DoEnter; override;
procedure DoExit; override;
procedure FocusChanged; override;
function GetBorderExtent: TRect; override;
function GetStyleClass: TcxContainerStyleClass; override;
function GetViewInfoClass: TcxContainerViewInfoClass; override;
function InternalGetNotPublishedStyleValues: TcxEditStyleValues; override;
function IsRightBoundFixed: Boolean; virtual;
function IsTransparentBackground: Boolean; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
procedure Loaded; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseLeave(AControl: TControl); override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure Paint; override;
procedure ReadState(Reader: TReader); override;
function RefreshContainer(const P: TPoint; Button: TcxMouseButton; Shift: TShiftState;
AIsMouseEvent: Boolean): Boolean; override;
procedure RequestAlign; override;
procedure SetName(const Value: TComponentName); override;
procedure SetParent(AParent: TWinControl); override;
procedure SetSize; override;
procedure CreateHandle; override;
function IsNativeStyle: Boolean; override;
procedure SafeSelectionFocusInnerControl; override;
procedure WndProc(var Message: TMessage); override;
procedure AdjustInnerEditPosition; virtual;
procedure AfterPosting; virtual;
procedure BeforePosting; virtual;
function ButtonVisibleIndexAt(const P: TPoint): Integer;
procedure CalculateViewInfo(AIsMouseEvent: Boolean); reintroduce; overload;
procedure CalculateViewInfo(P: TPoint; Button: TcxMouseButton;
Shift: TShiftState; AIsMouseEvent: Boolean); reintroduce; overload;
function CanAutoSize: Boolean; reintroduce; virtual;
function CanAutoWidth: Boolean; virtual;
function CanKeyDownModifyEdit(Key: Word; Shift: TShiftState): Boolean; virtual;
function CanKeyPressModifyEdit(Key: Char): Boolean; virtual;
function CanModify: Boolean; virtual;
procedure ChangeHandler(Sender: TObject); virtual;
procedure CheckHandle;
function CreateInnerEdit: IcxCustomInnerEdit; virtual;
function CreateViewData: TcxCustomEditViewData; virtual;
procedure DefaultButtonClick; virtual;
procedure DisableValidate;
procedure DoAfterKeyDown(var Key: Word; Shift: TShiftState);
procedure DoButtonClick(AButtonVisibleIndex: Integer); virtual;
procedure DoButtonDown(AButtonVisibleIndex: Integer); virtual;
procedure DoButtonUp(AButtonVisibleIndex: Integer); virtual;
procedure DoChange; virtual;
procedure DoClick;
procedure DoClosePopup(AReason: TcxEditCloseUpReason);
procedure DoEditValueChanged;
procedure DoEditKeyDown(var Key: Word; Shift: TShiftState); virtual;
procedure DoEditKeyPress(var Key: Char); virtual;
procedure DoEditKeyUp(var Key: Word; Shift: TShiftState); virtual;
procedure DoEditProcessTab(Shift: TShiftState); virtual;
procedure DoFocusChanged; virtual;
procedure DoHideEdit(AExit: Boolean);
procedure DoOnValidate(var ADisplayValue: TcxEditValue;
var AErrorText: TCaption; var AError: Boolean);
procedure DoOnChange; virtual;
procedure DoOnEditValueChanged; virtual;
procedure DoPostEditValue;
procedure DoShowEdit; virtual;
procedure EditingChanged; virtual;
procedure EnableValidate;
procedure FillSizeProperties(var AEditSizeProperties: TcxEditSizeProperties); virtual;
function GetClearValue: TcxEditValue; virtual;
class function GetDataBindingClass: TcxEditDataBindingClass; reintroduce; virtual;
function GetDefaultButtonVisibleIndex: Integer;
function GetDisplayValue: string; virtual;
function GetEditDataClass: TcxCustomEditDataClass; virtual;
function GetEditingValue: TcxEditValue; virtual;
function GetEditValue: TcxEditValue; virtual;
function GetInnerEditClass: TControlClass; virtual;
function HandleMouseWheel(Shift: TShiftState): Boolean;
procedure HandleValidationError(const AErrorText: string;
ACanAbortExecution: Boolean); virtual;
function HasInnerEdit: Boolean;
procedure Initialize; virtual;
procedure InitializeEditData; virtual;
procedure InitializeInnerEdit; virtual;
procedure InitializeViewData(AViewData: TcxCustomEditViewData); virtual;
function InternalDoEditing: Boolean; virtual;
function InternalGetActiveProperties: TcxCustomEditProperties;
function InternalGetEditingValue: TcxEditValue; virtual;
procedure InternalPostEditValue(AValidateEdit: Boolean = False);
procedure InternalPostValue;
procedure InternalSetDisplayValue(const Value: TcxEditValue); virtual;
procedure InternalSetEditValue(const Value: TcxEditValue;
AValidateEditValue: Boolean); virtual;
procedure InternalValidateDisplayValue(const ADisplayValue: TcxEditValue); virtual;
function IsActiveControl: Boolean; virtual;
function IsButtonDC(ADC: THandle): Boolean; virtual;
function IsClickEnabledDuringLoading: Boolean; virtual;
function IsDBEdit: Boolean;
function IsDBEditPaintCopyDrawing: Boolean; virtual;
function IsEditorKey(Key: Word; Shift: TShiftState): Boolean; virtual;
function IsEditValueStored: Boolean; virtual;
function IsNativeBackground: Boolean; virtual;
function IsOnChangeEventAssigned: Boolean;
function IsOnEditValueChangedEventAssigned: Boolean;
function IsOnValidateEventAssigned: Boolean;
function IsResetEditClass: Boolean;
function IsSpecialKey(Key: Word; Shift: TShiftState): Boolean;
function IsTransparent: Boolean; virtual;
function IsValidChar(AChar:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?