cxgridtableview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,513 行 · 第 1/5 页
PAS
1,513 行
end;
TcxGridDataRow = class(TcxCustomGridRow)
protected
function GetHasCells: Boolean; override;
function GetViewInfoCacheItemClass: TcxCustomGridViewInfoCacheItemClass; override;
function GetViewInfoClass: TcxCustomGridRecordViewInfoClass; override;
public
function SupportsCellMultiSelect: Boolean; override;
end;
TcxGridNewItemRowClass = class of TcxGridNewItemRow;
TcxGridNewItemRow = class(TcxGridDataRow)
public
function SupportsCellMultiSelect: Boolean; override;
end;
TcxGridFilterRowClass = class of TcxGridFilterRow;
TcxGridFilterRow = class(TcxGridNewItemRow)
private
FSelected: Boolean;
function GetFilterCriteriaItem(Index: Integer): TcxFilterCriteriaItem;
protected
procedure RefreshRecordInfo; override;
function GetSelected: Boolean; override;
function GetVisible: Boolean; override;
procedure SetSelected(Value: Boolean); override;
function GetDisplayText(Index: Integer): string; override;
function GetValue(Index: Integer): Variant; override;
procedure SetDisplayText(Index: Integer; const Value: string); override;
procedure SetValue(Index: Integer; const Value: Variant); override;
function GetDisplayTextForValue(AIndex: Integer; const AValue: Variant): string; virtual;
function GetFilterOperatorKind(const AValue: Variant; ACheckMask: Boolean): TcxFilterOperatorKind; virtual;
function IsFilterOperatorSupported(AKind: TcxFilterOperatorKind; const AValue: Variant): Boolean; virtual;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
property FilterCriteriaItems[Index: Integer]: TcxFilterCriteriaItem read GetFilterCriteriaItem;
property InternalSelected: Boolean read FSelected write FSelected;
public
destructor Destroy; override;
function CanFocusCells: Boolean; override;
function IsEmpty: Boolean;
end;
TcxGridMasterDataRow = class(TcxGridDataRow)
private
function GetActiveDetailGridView: TcxCustomGridView;
function GetActiveDetailGridViewExists: Boolean;
function GetActiveDetailIndex: Integer;
function GetActiveDetailLevel: TcxGridLevel;
function GetDetailGridView(Index: Integer): TcxCustomGridView;
function GetDetailGridViewCount: Integer;
function GetDetailGridViewExists(Index: Integer): Boolean;
function GetDetailGridViewHasData(Index: Integer): Boolean;
function GetInternalActiveDetailGridView: TcxCustomGridView;
function GetInternalActiveDetailGridViewExists: Boolean;
function GetInternalActiveDetailIndex: Integer;
procedure SetActiveDetailIndex(Value: Integer);
procedure SetActiveDetailLevel(Value: TcxGridLevel);
protected
procedure DoCollapse(ARecurse: Boolean); override;
procedure DoExpand(ARecurse: Boolean); override;
function GetExpandable: Boolean; override;
function GetExpanded: Boolean; override;
function GetHasChildren: Boolean; virtual;
function GetViewInfoCacheItemClass: TcxCustomGridViewInfoCacheItemClass; override;
function GetViewInfoClass: TcxCustomGridRecordViewInfoClass; override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure ToggleExpanded; override;
property InternalActiveDetailGridView: TcxCustomGridView read GetInternalActiveDetailGridView;
property InternalActiveDetailGridViewExists: Boolean read GetInternalActiveDetailGridViewExists;
property InternalActiveDetailIndex: Integer read GetInternalActiveDetailIndex;
public
function ExpandOnDblClick: Boolean; override;
function GetFirstFocusableChild: TcxCustomGridRecord; override;
function GetLastFocusableChild(ARecursive: Boolean): TcxCustomGridRecord; override;
property ActiveDetailGridView: TcxCustomGridView read GetActiveDetailGridView;
property ActiveDetailGridViewExists: Boolean read GetActiveDetailGridViewExists;
property ActiveDetailIndex: Integer read GetActiveDetailIndex write SetActiveDetailIndex;
property ActiveDetailLevel: TcxGridLevel read GetActiveDetailLevel write SetActiveDetailLevel;
property DetailGridViewCount: Integer read GetDetailGridViewCount;
property DetailGridViewExists[Index: Integer]: Boolean read GetDetailGridViewExists;
property DetailGridViewHasData[Index: Integer]: Boolean read GetDetailGridViewHasData;
property DetailGridViews[Index: Integer]: TcxCustomGridView read GetDetailGridView;
property HasChildren: Boolean read GetHasChildren;
end;
TcxGridGroupRow = class(TcxCustomGridRow)
private
function GetGroupedColumn: TcxGridColumn;
function GetGroupSummaryItems: TcxDataGroupSummaryItems;
protected
procedure DoCollapse(ARecurse: Boolean); override;
procedure DoExpand(ARecurse: Boolean); override;
//function GetDestroyingOnExpanding: Boolean; override;
function GetExpandable: Boolean; override;
function GetExpanded: Boolean; override;
function GetDisplayCaption: string; virtual;
function GetDisplayText(Index: Integer): string; override;
function GetDisplayTextValue: string; virtual;
function GetIsData: Boolean; override;
function GetIsParent: Boolean; override;
function GetValue: Variant; reintroduce; virtual;
function GetViewInfoCacheItemClass: TcxCustomGridViewInfoCacheItemClass; override;
function GetViewInfoClass: TcxCustomGridRecordViewInfoClass; override;
procedure SetDisplayText(Index: Integer; const Value: string); override;
procedure SetValue(Index: Integer; const Value: Variant); override;
public
function GetGroupSummaryInfo(var ASummaryItems: TcxDataSummaryItems;
var ASummaryValues: PVariant): Boolean;
property DisplayCaption: string read GetDisplayCaption;
property DisplayText: string read GetDisplayTextValue;
property GroupedColumn: TcxGridColumn read GetGroupedColumn;
property GroupSummaryItems: TcxDataGroupSummaryItems read GetGroupSummaryItems;
property Value: Variant read GetValue;
end;
TcxGridViewData = class(TcxCustomGridTableViewData)
private
FFilterRow: TcxGridFilterRow;
function GetNewItemRow: TcxGridNewItemRow;
function GetRow(Index: Integer): TcxCustomGridRow;
function GetRowCount: Integer;
protected
function GetFirstVisibleExpandedMasterRow: TcxGridMasterDataRow; virtual;
function GetNewItemRecordClass: TcxCustomGridRecordClass; override;
function GetRecordByKind(AKind, AIndex: Integer): TcxCustomGridRecord; override;
function GetRecordClass(ARecordInfo: TcxRowInfo): TcxCustomGridRecordClass; override;
function GetRecordKind(ARecord: TcxCustomGridRecord): Integer; override;
procedure CreateFilterRow;
procedure DestroyFilterRow;
procedure CheckFilterRow;
//procedure RecreateFilterRow;
function GetFilterRowClass: TcxGridFilterRowClass; virtual;
public
destructor Destroy; override;
procedure Collapse(ARecurse: Boolean); override;
procedure Expand(ARecurse: Boolean); override;
function HasFilterRow: Boolean; virtual;
function HasNewItemRecord: Boolean; override;
function MakeDetailVisible(ADetailLevel: TComponent{TcxGridLevel}): TcxCustomGridView; override;
//procedure Refresh(ARecordCount: Integer); override;
property FilterRow: TcxGridFilterRow read FFilterRow;
property NewItemRow: TcxGridNewItemRow read GetNewItemRow;
property RowCount: Integer read GetRowCount;
property Rows[Index: Integer]: TcxCustomGridRow read GetRow;
end;
{ controller }
// drag&drop objects
TcxGridColumnHeaderMovingObjectClass = class of TcxGridColumnHeaderMovingObject;
TcxGridColumnHeaderMovingObject = class(TcxCustomGridTableItemMovingObject)
private
FOriginalDestColumnContainerKind: TcxGridColumnContainerKind;
function GetGridView: TcxGridTableView;
function GetSourceItem: TcxGridColumn;
function GetViewInfo: TcxGridTableViewInfo;
procedure SetSourceItem(Value: TcxGridColumn);
protected
procedure CalculateDestParams(AHitTest: TcxCustomGridHitTest;
out AContainerKind: TcxGridItemContainerKind; out AZone: TcxGridItemContainerZone); override;
function CanRemove: Boolean; override;
procedure CheckDestItemContainerKind(var AValue: TcxGridItemContainerKind); override;
procedure DoColumnMoving; virtual;
function GetArrowAreaBounds(APlace: TcxGridArrowPlace): TRect; override;
function GetArrowAreaBoundsForHeader(APlace: TcxGridArrowPlace): TRect; virtual;
function GetArrowsClientRect: TRect; override;
function GetSourceItemViewInfo: TcxCustomGridCellViewInfo; override;
function IsValidDestination: Boolean; override;
function IsValidDestinationForVisibleSource: Boolean; virtual;
procedure EndDragAndDrop(Accepted: Boolean); override;
property GridView: TcxGridTableView read GetGridView;
property OriginalDestColumnContainerKind: TcxGridColumnContainerKind
read FOriginalDestColumnContainerKind write FOriginalDestColumnContainerKind;
property SourceItem: TcxGridColumn read GetSourceItem write SetSourceItem;
property ViewInfo: TcxGridTableViewInfo read GetViewInfo;
public
procedure Init(const P: TPoint; AParams: TcxCustomGridHitTest); override;
end;
TcxCustomGridSizingObject = class(TcxCustomGridDragAndDropObject)
private
FDestPointX: Integer;
FDestPointY: Integer;
FOriginalSize: Integer;
function GetController: TcxGridTableController;
function GetGridView: TcxGridTableView;
function GetViewInfo: TcxGridTableViewInfo;
procedure SetDestPointX(Value: Integer);
procedure SetDestPointY(Value: Integer);
protected
procedure DirtyChanged; override;
function GetCurrentSize: Integer; virtual;
function GetDeltaSize: Integer; virtual;
function GetDragAndDropCursor(Accepted: Boolean): TCursor; override;
function GetHorzSizingMarkBounds: TRect; virtual;
function GetImmediateStart: Boolean; override;
function GetIsHorizontalSizing: Boolean; virtual;
function GetSizingItemBounds: TRect; virtual; abstract;
function GetSizingMarkBounds: TRect; virtual;
function GetSizingMarkWidth: Integer; virtual; abstract;
function GetVertSizingMarkBounds: TRect; virtual;
procedure DragAndDrop(const P: TPoint; var Accepted: Boolean); override;
property Controller: TcxGridTableController read GetController;
property CurrentSize: Integer read GetCurrentSize;
property DeltaSize: Integer read GetDeltaSize;
property DestPointX: Integer read FDestPointX write SetDestPointX;
property DestPointY: Integer read FDestPointY write SetDestPointY;
property GridView: TcxGridTableView read GetGridView;
property IsHorizontalSizing: Boolean read GetIsHorizontalSizing;
property OriginalSize: Integer read FOriginalSize write FOriginalSize;
property SizingItemBounds: TRect read GetSizingItemBounds;
property SizingMarkBounds: TRect read GetSizingMarkBounds;
property SizingMarkWidth: Integer read GetSizingMarkWidth;
property ViewInfo: TcxGridTableViewInfo read GetViewInfo;
public
procedure Init(const P: TPoint; AParams: TcxCustomGridHitTest); override;
end;
TcxCustomGridColumnSizingObject = class(TcxCustomGridSizingObject)
private
FColumn: TcxGridColumn;
function GetColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo;
protected
function GetSizingItemBounds: TRect; override;
function GetSizingMarkWidth: Integer; override;
property Column: TcxGridColumn read FColumn write FColumn;
property ColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo read GetColumnHeaderViewInfo;
public
procedure Init(const P: TPoint; AParams: TcxCustomGridHitTest); override;
end;
TcxGridColumnHorzSizingObject = class(TcxCustomGridColumnSizingObject)
protected
procedure BeginDragAndDrop; override;
procedure EndDragAndDrop(Accepted: Boolean); override;
function GetCurrentSize: Integer; override;
end;
TcxGridRowSizingObject = class(TcxCustomGridSizingObject)
private
FRow: TcxCustomGridRow;
function GetRowViewInfo: TcxCustomGridRowViewInfo;
protected
procedure BeginDragAndDrop; override;
procedure EndDragAndDrop(Accepted: Boolean); override;
function GetCurrentSize: Integer; override;
function GetIsHorizontalSizing: Boolean; override;
function GetSizingItemBounds: TRect; override;
function GetSizingMarkWidth: Integer; override;
property Row: TcxCustomGridRow read FRow;
property RowViewInfo: TcxCustomGridRowViewInfo read GetRowViewInfo;
public
procedure Init(const P: TPoint; AParams: TcxCustomGridHitTest); override;
end;
// customization form
TcxGridTableItemsListBox = class(TcxCustomGridTableItemsListBox)
private
function GetGridView: TcxGridTableView;
protected
function CalculateItemHeight: Integer; override;
function DrawItemDrawBackgroundHandler(ACanvas: TcxCanvas; const ABounds: TRect): Boolean; virtual; abstract;
function GetItemEndEllipsis: Boolean; virtual; abstract;
property GridView: TcxGridTableView read GetGridView;
public
constructor Create(AOwner: TComponent); override;
procedure PaintItem(ACanvas: TcxCanvas; R: TRect; AIndex: Integer; AFocused: Boolean); override;
end;
TcxGridTableColumnsListBox = class(TcxGridTableItemsListBox)
protected
function DrawItemDrawBackgroundHandler(ACanvas: TcxCanvas; const ABounds: TRect): Boolean; override;
function GetDragAndDropParams: TcxCustomGridHitTest; override;
function GetItemEndEllipsis: Boolean; override;
public
procedure RefreshItems; override;
end;
TcxGridTableCustomizationForm = class(TcxCustomGridTableCustomizationForm)
private
function GetColumnsListBox: TcxGridTableColumnsListBox;
function GetColumnsPage: TcxTabSheet;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?