cxinplacecontainer.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,419 行 · 第 1/5 页
PAS
1,419 行
TcxControlOptionsBehaviorClass = class of TcxControlOptionsBehavior;
TcxControlOptionsBehavior = class(TcxOwnedPersistent)
private
FAlwaysShowEditor: Boolean;
FCellHints: Boolean;
FDragDropText: Boolean;
FFocusCellOnCycle: Boolean;
FFocusFirstCellOnNewRecord: Boolean;
FGoToNextCellOnEnter: Boolean;
FGoToNextCellOnTab: Boolean;
FImmediateEditor: Boolean;
FIncSearch: Boolean;
FIncSearchItem: TcxCustomInplaceEditContainer;
function GetEditingControl: TcxEditingControl;
procedure SetAlwaysShowEditor(Value: Boolean);
procedure SetCellHints(Value: Boolean);
procedure SetFocusCellOnCycle(Value: Boolean);
procedure SetFocusFirstCellOnNewRecord(Value: Boolean);
procedure SetGoToNextCellOnEnter(Value: Boolean);
procedure SetGoToNextCellOnTab(Value: Boolean);
procedure SetImmediateEditor(Value: Boolean);
procedure SetIncSearch(Value: Boolean);
procedure SetIncSearchItem(Value: TcxCustomInplaceEditContainer);
protected
procedure Changed; virtual;
property DragDropText: Boolean read FDragDropText write FDragDropText default False;
property EditingControl: TcxEditingControl read GetEditingControl;
property FocusCellOnCycle: Boolean read FFocusCellOnCycle write SetFocusCellOnCycle default False;
property FocusFirstCellOnNewRecord: Boolean read FFocusFirstCellOnNewRecord write SetFocusFirstCellOnNewRecord default False;
property IncSearch: Boolean read FIncSearch write SetIncSearch default False;
property IncSearchItem: TcxCustomInplaceEditContainer read FIncSearchItem write SetIncSearchItem;
public
constructor Create(AOwner: TPersistent); override;
procedure Assign(Source: TPersistent); override;
published
property AlwaysShowEditor: Boolean read FAlwaysShowEditor write SetAlwaysShowEditor default False;
property CellHints: Boolean read FCellHints write SetCellHints default False;
property GoToNextCellOnEnter: Boolean read FGoToNextCellOnEnter write SetGoToNextCellOnEnter default False;
property GoToNextCellOnTab: Boolean read FGoToNextCellOnTab write SetGoToNextCellOnTab default False;
property ImmediateEditor: Boolean read FImmediateEditor write SetImmediateEditor default True;
end;
{ TcxEditContainerStyles }
TcxEditContainerStylesClass = class of TcxEditContainerStyles;
TcxEditContainerStyles = class(TcxStyles)
private
function GetContainer: TcxCustomInplaceEditContainer;
function GetControl: TcxEditingControl;
function GetControlStyles: TcxCustomControlStyles;
protected
procedure Changed(AIndex: Integer); override;
public
procedure Assign(Source: TPersistent); override;
property Container: TcxCustomInplaceEditContainer read GetContainer;
property Control: TcxEditingControl read GetControl;
property ControlStyles: TcxCustomControlStyles read GetControlStyles;
published
property Content: TcxStyle index ecs_Content read GetValue write SetValue;
end;
{ TcxCustomInplaceEditContainer }
IcxEditorPropertiesContainer = interface
['{9F0CD5D9-A3D1-44B7-82DC-CAEAC1367C5D}']
function GetProperties: TcxCustomEditProperties;
function GetPropertiesClass: TcxCustomEditPropertiesClass;
procedure SetPropertiesClass(Value: TcxCustomEditPropertiesClass);
end;
TcxCustomInplaceEditContainer = class(TComponent, IUnknown, IcxEditRepositoryItemListener, IcxEditorPropertiesContainer)
private
FData: Pointer;
FEditData: TcxCustomEditData;
FEditingControl: TcxEditingControl;
FEditViewData: TcxCustomEditViewData;
FEditValueSource: TcxDataEditValueSource;
FItemIndex: Integer;
FOptions: TcxCustomEditContainerItemOptions;
FProperties: TcxCustomEditProperties;
FPropertiesClass: TcxCustomEditPropertiesClass;
FPropertiesEvents: TNotifyEvent;
FPropertiesValue: TcxCustomEditProperties;
FRepositoryItem: TcxEditRepositoryItem;
FStyles: TcxEditContainerStyles;
FOnGetEditProperties: TcxGetEditPropertiesEvent;
FOnGetEditingProperties: TcxGetEditPropertiesEvent;
procedure IcxEditRepositoryItemListener.PropertiesChanged = RepositoryItemPropertiesChanged;
procedure IcxEditRepositoryItemListener.ItemRemoved = RepositoryItemRemoved;
function GetDataController: TcxCustomDataController;
function GetFocused: Boolean;
function GetFocusedCellViewInfo: TcxEditCellViewInfo;
function GetIncSearching: Boolean;
function GetProperties: TcxCustomEditProperties;
function GetPropertiesClass: TcxCustomEditPropertiesClass;
function GetPropertiesClassName: string;
function GetPropertiesValue: TcxCustomEditProperties;
procedure SetDataBinding(Value: TcxCustomItemDataBinding);
procedure SetFocused(Value: Boolean);
procedure SetOptions(Value: TcxCustomEditContainerItemOptions);
procedure SetProperties(Value: TcxCustomEditProperties);
procedure SetPropertiesClass(Value: TcxCustomEditPropertiesClass);
procedure SetPropertiesClassName(const Value: string);
procedure SetRepositoryItem(Value: TcxEditRepositoryItem);
procedure SetStyles(Value: TcxEditContainerStyles);
procedure CreateProperties;
procedure DestroyProperties;
procedure RecreateProperties;
procedure RepositoryItemPropertiesChanged(Sender: TcxEditRepositoryItem);
procedure RepositoryItemRemoved(Sender: TcxEditRepositoryItem);
protected
FDataBinding: TcxCustomItemDataBinding;
procedure CalculateEditViewInfo(const AValue: Variant;
AEditViewInfo: TcxEditCellViewInfo; const APoint: TPoint); virtual;
function CanEdit: Boolean; virtual;
function CanFocus: Boolean; virtual;
procedure CancelIncSearching;
function CanInitEditing: Boolean; virtual;
function CanIncSearch: Boolean; virtual;
function CanTabStop: Boolean; virtual;
procedure Changed; virtual;
function CreateEditViewData(AProperties: TcxCustomEditProperties; AEditStyleData: Pointer): TcxCustomEditViewData; virtual;
procedure DataChanged; virtual;
procedure DoGetDisplayText(ARecordIndex: Integer; var AText: string); virtual;
function DoGetEditProperties(AData: Pointer): TcxCustomEditProperties; virtual;
procedure DoGetEditingProperties(AData: Pointer; var AProperties: TcxCustomEditProperties); virtual;
function DoGetPropertiesFromEvent(AEvent: TcxGetEditPropertiesEvent; AData: Pointer;
AProperties: TcxCustomEditProperties): TcxCustomEditProperties; virtual;
procedure DoOnPropertiesChanged(Sender: TObject); virtual;
procedure EditViewDataGetDisplayTextHandler(Sender: TcxCustomEditViewData; var AText: string); virtual;
function GetControlCanvas: TcxCanvas; virtual;
function GetController: TcxCustomControlController; virtual;
function GetCurrentValue: Variant; virtual;
function GetDataBindingClass: TcxItemDataBindingClass; virtual;
function GetDefaultEditProperties: TcxCustomEditProperties; virtual;
function GetDisplayValue(AProperties: TcxCustomEditProperties; ARecordIndex: Integer): Variant; virtual;
function GetEditDataValueTypeClass: TcxValueTypeClass; virtual; // todo:
function GetEditDefaultHeight(AFont: TFont): Integer; virtual;
function GetEditHeight(AEditViewInfo: TcxEditCellViewInfo): Integer; virtual;
function GetEditing: Boolean; virtual;
function GetEditStyle(AData: Pointer): TcxCustomEditStyle; virtual;
function GetEditValue: Variant; virtual;
function GetEditWidth(AEditViewInfo: TcxEditCellViewInfo): Integer; virtual;
function GetOptionsClass: TcxCustomEditContainerItemOptionsClass; virtual;
function GetStylesClass: TcxEditContainerStylesClass; virtual;
function GetValue(ARecordIndex: Integer): Variant; virtual;
function GetValueCount: Integer; virtual;
function HasDataTextHandler: Boolean; virtual;
procedure InitEditViewInfo(AEditViewInfo: TcxEditCellViewInfo); virtual;
procedure InitProperties(AProperties: TcxCustomEditProperties); virtual;
procedure InternalPropertiesChanged;
function IsDestroying: Boolean;
function IsEditPartVisible: Boolean;
procedure PropertiesChanged; virtual;
procedure SetCurrentValue(const Value: Variant); virtual;
procedure SetEditing(Value: Boolean); virtual;
procedure SetEditingControl(Value: TcxEditingControl); virtual;
procedure SetEditValue(const Value: Variant); virtual;
procedure SetValue(ARecordIndex: Integer; const Value: Variant); virtual;
property Controller: TcxCustomControlController read GetController;
property DataBinding: TcxCustomItemDataBinding read FDataBinding write SetDataBinding;
property DataController: TcxCustomDataController read GetDataController; // todo: should be protected
property IncSearching: Boolean read GetIncSearching;
property EditData: TcxCustomEditData read FEditData;
property Editing: Boolean read GetEditing write SetEditing;
property EditingControl: TcxEditingControl read FEditingControl write SetEditingControl;
property EditValue: Variant read GetEditValue write SetEditValue;
property EditValueSource: TcxDataEditValueSource read FEditValueSource;
property EditViewData: TcxCustomEditViewData read FEditViewData;
property Focused: Boolean read GetFocused write SetFocused;
property FocusedCellViewInfo: TcxEditCellViewInfo read GetFocusedCellViewInfo;
property Options: TcxCustomEditContainerItemOptions read FOptions write SetOptions;
property PropertiesValue: TcxCustomEditProperties read GetPropertiesValue;
property Value: Variant read GetCurrentValue write SetCurrentValue;
property ValueCount: Integer read GetValueCount;
property Values[ARecordIndex: Integer]: Variant read GetValue write SetValue;
property OnGetEditProperties: TcxGetEditPropertiesEvent read FOnGetEditProperties write FOnGetEditProperties;
property OnGetEditingProperties: TcxGetEditPropertiesEvent read FOnGetEditingProperties write FOnGetEditingProperties;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
property Data: Pointer read FData write FData;
property ItemIndex: Integer read FItemIndex;
property PropertiesClass: TcxCustomEditPropertiesClass read FPropertiesClass write SetPropertiesClass;
published
property PropertiesClassName: string read GetPropertiesClassName write SetPropertiesClassName;
property Properties: TcxCustomEditProperties read GetProperties write SetProperties;
property PropertiesEvents: TNotifyEvent read FPropertiesEvents write FPropertiesEvents;
property RepositoryItem: TcxEditRepositoryItem read FRepositoryItem write SetRepositoryItem;
property Styles: TcxEditContainerStyles read FStyles write SetStyles;
end;
{ IcxHotTrackElement }
IcxHotTrackElement = interface
['{E7171E58-276E-499B-9DDF-298D850883C9}']
function GetOrigin: TPoint;
function IsNeedHint(ACanvas: TcxCanvas; const P: TPoint;
out AText: TCaption;
out AIsMultiLine: Boolean;
out ATextRect: TRect; var IsNeedOffsetHint: Boolean): Boolean;
procedure UpdateHotTrackState(const APoint: TPoint);
end;
{ TcxHotTrackController }
TcxHotTrackController = class
private
FControl: TcxEditingControl;
FShowHint: Boolean;
procedure InternalHideHint(Sender: TObject);
procedure InternalShowHint(Sender: TObject);
procedure ResetTimer;
protected
Hint: TCaption;
HintIsMultiLine: Boolean;
HintTimer: TcxTimer;
HintRect: TRect;
HintVisible: Boolean;
HintElement: TObject;
HintWindow: THintWindow;
PrevHitPoint: TPoint;
PrevElement: TObject;
function CanShowHint: Boolean;
procedure CheckDestroyingElement(AElement: TObject);
procedure CheckHintClass;
procedure DoHideHint; virtual;
procedure DoShowHint; virtual;
function HintNeeded: Boolean;
procedure InitTimer(AInterval: Integer; AEnabled: Boolean; const AHandler: TNotifyEvent);
public
constructor Create(AControl: TcxEditingControl); virtual;
destructor Destroy; override;
procedure CancelHint;
procedure Clear;
procedure SetHotElement(AElement: TObject; const APoint: TPoint);
property Control: TcxEditingControl read FControl write FControl;
property ShowHint: Boolean read FShowHint write FShowHint;
end;
{ IcxDragSizing }
IcxDragSizing = interface
['{5EA02F4E-E367-4E4D-A26D-000B5E5CD434}']
function CanSizing(ADirection: TcxDragSizingDirection): Boolean;
function GetSizingBoundsRect(ADirection: TcxDragSizingDirection): TRect;
function GetSizingIncrement(ADirection: TcxDragSizingDirection): Integer;
function IsDynamicUpdate: Boolean;
procedure SetSizeDelta(ADirection: TcxDragSizingDirection; ADelta: Integer);
end;
{ TcxSizingDragAndDropObject }
TcxSizingDragAndDropObject = class(TcxDragAndDropObject)
private
FDelta: Integer;
FDirection: TcxDragSizingDirection;
FDragBounds: TRect;
FDragPos: TPoint;
FDynamicUpdate: Boolean;
FStartPos: TPoint;
FSizeDelta: Integer;
function GetCanvas: TcxCanvas;
function GetController: TcxCustomControlController;
function GetDragCoord(APoint: TPoint): Integer;
function GetDragItem: TObject;
function GetDragSizing: IcxDragSizing;
function GetIsSizingKind(Index: Integer): Boolean;
protected
procedure BeginDragAndDrop; override;
procedure DirtyChanged; override;
procedure DragAndDrop(const P: TPoint; var Accepted: Boolean); override;
procedure EndDragAndDrop(Accepted: Boolean); override;
function GetDragAndDropCursor(Accepted: Boolean): TCursor; override;
function GetDragPos(const APoint: TPoint): TPoint; virtual;
function GetImmediateStart: Boolean; override;
function GetSizingMarkBounds: TRect; virtual;
property StartPos: TPoint read FStartPos;
property Controller: TcxCustomControlController read GetController;
property Delta: Integer read FDelta;
property DragCoord[Point: TPoint]: Integer read GetDragCoord;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?