cxinplacecontainer.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,419 行 · 第 1/5 页
PAS
1,419 行
property DragPos: TPoint read FDragPos;
property DragSizing: IcxDragSizing read GetDragSizing;
property Direction: TcxDragSizingDirection read FDirection;
public
property Canvas: TcxCanvas read GetCanvas;
property DragBounds: TRect read FDragBounds;
property DragItem: TObject read GetDragItem;
property DynamicUpdate: Boolean read FDynamicUpdate;
property IsHorzSizing: Boolean index 0 read GetIsSizingKind;
property IsVertSizing: Boolean index 1 read GetIsSizingKind;
property SizeDelta: Integer read FSizeDelta;
end;
{ TcxAutoScrollingObject }
TcxAutoScrollingObject = class
private
FArea: TRect;
FCode: TScrollCode;
FIncrement: Integer;
FKind: TScrollBarKind;
FOwner: TObject;
FTimer: TcxTimer;
protected
procedure DoScrollInspectingControl; virtual;
function GetControl: TcxEditingControl; virtual;
function GetScrollBar(AKind: TScrollBarKind): TcxControlScrollBar; virtual;
procedure TimerHandler(Sender: TObject); virtual;
public
constructor Create(AOwner: TObject); virtual;
destructor Destroy; override;
function Check(APos: TPoint): Boolean;
procedure SetParams(const Area: TRect; AKind: TScrollBarKind;
ACode: TScrollCode; AIncrement: Integer);
procedure Stop;
property Code: TScrollCode read FCode;
property Control: TcxEditingControl read GetControl;
property Increment: Integer read FIncrement;
property Kind: TScrollBarKind read FKind;
property Owner: TObject read FOwner;
property Timer: TcxTimer read FTimer;
end;
{ TcxDragDropAutoScrollingObject }
TcxDragDropObjectAutoScrollingObject = class(TcxAutoScrollingObject)
protected
function GetControl: TcxEditingControl; override;
end;
{ TcxControllerAutoScrollingObject }
TcxControllerAutoScrollingObject = class(TcxAutoScrollingObject)
private
FBoundsMode: Boolean;
FCheckHorz: Boolean;
FCheckVert: Boolean;
FDirections: TcxNeighbors;
protected
procedure DoScrollInspectingControl; override;
function GetControl: TcxEditingControl; override;
public
function CheckBounds(APos: TPoint): Boolean;
procedure SetBoundsParams(const AClientArea: TRect;
ACheckHorz, ACheckVert: Boolean; AIncrement: Integer);
end;
TcxAutoScrollingObjectClass = class of TcxAutoScrollingObject;
{ TcxBaseDragAndDropObject }
TcxBaseDragAndDropObject = class(TcxDragAndDropObject)
private
function GetEditingControl: TcxEditingControl;
protected
function GetDragAndDropCursor(Accepted: Boolean): TCursor; override;
property EditingControl: TcxEditingControl read GetEditingControl;
end;
{ TcxDragImage }
TcxDragImage = class(cxControls.TcxDragImage)
public
property Image;
property WindowCanvas;
end;
{ TcxPlaceArrows }
TcxPlaceArrows = class(TcxDragImage)
private
FBorderColor: TColor;
FColor: TColor;
FPrevRect: TRect;
FPrevSide: TcxBorder;
FWindowRegion: HRGN;
procedure SetWindowRegion(ARegion: HRGN);
protected
function CreateArrowsRgns(const ARect: TRect; ASide: TcxBorder): HRGN;
property BorderColor: TColor read FBorderColor;
property Color: TColor read FColor;
property WindowRegion: HRGN read FWindowRegion write SetWindowRegion;
public
constructor CreateArrows(AColor: TColor; ABorderColor: TColor = clDefault); virtual;
function MoveTo(ARect: TRect; ASide: TcxBorder): Boolean;
end;
{ TcxCustomControlDragAndDropObject }
TcxCustomControlDragAndDropObject = class(TcxBaseDragAndDropObject)
private
FAutoScrollObjects: TList;
FCanDrop: Boolean;
FDragImage: TcxDragImage;
FHotSpot: TPoint;
FOrgOffset: TPoint;
FPictureSize: TRect;
function CheckScrolling(const P: TPoint): Boolean;
function GetAutoScrollObject(Index: Integer): TcxAutoScrollingObject;
function GetAutoScrollObjectCount: Integer;
function GetCanvas: TcxCanvas;
function GetHitTestController: TcxCustomHitTestController;
protected
procedure AddAutoScrollingObject(const ARect: TRect; AKind: TScrollBarKind; ACode: TScrollCode);
procedure BeginDragAndDrop; override;
procedure DragAndDrop(const P: TPoint; var Accepted: Boolean); override;
procedure DrawDragImage; virtual;
procedure DrawImage(const APoint: TPoint);
procedure EndDragAndDrop(Accepted: Boolean); override;
function GetAcceptedRect: TRect; virtual;
function GetAutoScrollingObjectClass: TcxAutoScrollingObjectClass; virtual;
function GetDisplayRect: TRect; virtual;
function GetDragAndDropCursor(Accepted: Boolean): TCursor; override;
function GetHorzScrollInc: Integer; virtual;
function GetVertScrollInc: Integer; virtual;
procedure OwnerImageChanged; virtual;
procedure OwnerImageChanging; virtual;
procedure Paint; virtual;
procedure StopScrolling;
// screen image working
property AcceptedRect: TRect read GetAcceptedRect;
property AutoScrollObjectCount: Integer read GetAutoScrollObjectCount;
property AutoScrollObjects[Index: Integer]: TcxAutoScrollingObject read GetAutoScrollObject;
property Canvas: TcxCanvas read GetCanvas;
property CanDrop: Boolean read FCanDrop;
property DisplayRect: TRect read GetDisplayRect;
property DragImage: TcxDragImage read FDragImage;
property HitTestController: TcxCustomHitTestController read GetHitTestController;
property HotSpot: TPoint read FHotSpot;
property OrgOffset: TPoint read FOrgOffset;
property PictureSize: TRect read FPictureSize;
public
constructor Create(AControl: TcxControl); override;
destructor Destroy; override;
end;
{ TcxDragImageHelper }
TcxDragImageHelperClass = class of TcxDragImageHelper;
TcxDragImageHelper = class
private
FDragControl: TcxEditingControl;
FDragImageVisible: Boolean;
FDragPos: TPoint;
function GetImageRect: TRect;
procedure SetDragImageVisible(Value: Boolean);
protected
DragImage: TcxDragImage;
HotSpot: TPoint;
DragPictureBounds: TRect;
MousePos: TPoint;
procedure DragAndDrop(const P: TPoint); virtual;
function GetDisplayRect: TRect; virtual;
procedure InitDragImage; virtual;
// working with screen
procedure DrawImage(const APoint: TPoint); virtual;
public
constructor Create(AControl: TcxEditingControl; ADragPos: TPoint); virtual;
destructor Destroy; override;
procedure Hide; virtual;
procedure Show; virtual;
property DragControl: TcxEditingControl read FDragControl;
property DragImageRect: TRect read GetImageRect;
property DragImageVisible: Boolean read FDragImageVisible write SetDragImageVisible;
end;
{ TcxCustomHitTestController }
TcxHitTestControllerClass = class of TcxCustomHitTestController;
TcxCustomHitTestController = class
private
FController: TcxCustomControlController;
FHitPoint: TPoint;
FHitTestItem: TObject;
FShift: TShiftState;
function GetControl: TcxEditingControl;
function GetCoordinate(AIndex: Integer): Integer;
function GetEditCellViewInfo: TcxEditCellViewInfo;
function GetHasCode(Mask: TcxHitCode): Boolean;
function GetHotTrackController: TcxHotTrackController;
function GetIsItemEditCell: Boolean;
function GetIsMouseEvent: Boolean;
function GetViewInfo: TcxCustomControlViewInfo;
procedure SetCoordinate(AIndex: Integer; Value: Integer);
procedure SetHasCode(ACode: TcxHitCode; AValue: Boolean);
procedure SetHitPoint(const APoint: TPoint);
procedure SetHitTestItem(AItem: TObject);
procedure SetIsMouseEvent(Value: Boolean);
protected
FHitState: TcxHitCode;
function AllowDesignMouseEvents(X, Y: Integer; AShift: TShiftState): Boolean; virtual;
procedure ClearState;
procedure DestroyingItem(AItem: TObject);
procedure DoCalculate; virtual;
function GetCurrentCursor: TCursor; virtual;
procedure HitCodeChanged(APrevCode: Integer); virtual;
procedure HitTestItemChanged(APrevHitTestItem: TObject); virtual;
procedure RecalculateOnMouseEvent(X, Y: Integer; AShift: TShiftState);
property Control: TcxEditingControl read GetControl;
property Controller: TcxCustomControlController read FController;
property HotTrackController: TcxHotTrackController read GetHotTrackController;
property IsMouseEvent: Boolean read GetIsMouseEvent write SetIsMouseEvent;
property Shift: TShiftState read FShift;
property ViewInfo: TcxCustomControlViewInfo read GetViewInfo;
public
constructor Create(AOwner: TcxCustomControlController); virtual;
destructor Destroy; override;
procedure ReCalculate; overload;
procedure ReCalculate(const APoint: TPoint); overload;
property EditCellViewInfo: TcxEditCellViewInfo read GetEditCellViewInfo;
property HitPoint: TPoint read FHitPoint write SetHitPoint;
property HitX: Integer index 0 read GetCoordinate write SetCoordinate;
property HitY: Integer index 1 read GetCoordinate write SetCoordinate;
property HitState: TcxHitCode read FHitState;
property HitCode[ACode: TcxHitCode]: Boolean read GetHasCode write SetHasCode;
property HitTestItem: TObject read FHitTestItem write SetHitTestItem;
property IsItemEditCell: Boolean read GetIsItemEditCell;
end;
{ TcxCustomCellNavigator }
TcxCustomCellNavigator = class
private
FController: TcxCustomControlController;
FEatKeyPress: Boolean;
FDownOnEnter: Boolean;
FDownOnTab: Boolean;
function GetDataController: TcxCustomDataController;
protected
RowCount: Integer;
function SelectCell(AForward, ANextRow: Boolean;
var ARowIndex, ACellIndex: Integer): TcxCustomInplaceEditContainer; virtual;
procedure CalcNextRow(AForward: Boolean; var ARowIndex, ACellIndex: Integer); virtual;
function GetCellContainer(ARowIndex, ACellIndex: Integer): TcxCustomInplaceEditContainer; virtual;
function GetCount(ARowIndex: Integer): Integer; virtual;
procedure Init(var ARowIndex, ACellIndex, ARowCount: Integer); virtual;
function MayFocusedEmptyRow(ARowIndex: Integer): Boolean; virtual;
procedure SetFocusCell(ARowIndex, ACellIndex: Integer; AShift: TShiftState); virtual;
procedure DoKeyPress(var Key: Char); virtual;
property DownOnEnter: Boolean read FDownOnEnter write FDownOnEnter;
property DownOnTab: Boolean read FDownOnTab write FDownOnTab;
public
constructor Create(AController: TcxCustomControlController); virtual;
procedure FocusNextCell(AForward, ANextRow: Boolean; AShift: TShiftState = []); virtual;
procedure KeyDown(var Key: Word; Shift: TShiftState); virtual;
procedure KeyPress(var Key: Char); virtual;
procedure Refresh; virtual;
property Count[ARowIndex: Integer]: Integer read GetCount;
property Controller: TcxCustomControlController read FController;
property DataController: TcxCustomDataController read GetDataController;
property EatKeyPress: Boolean read FEatKeyPress write FEatKeyPress;
end;
TcxCustomCellNavigatorClass = class of TcxCustomCellNavigator;
{ TcxDesignSelectionHelper }
TcxCustomDesignSelectionHelper = class
private
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?