cxgridtableview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,513 行 · 第 1/5 页
PAS
1,513 行
function GetController: TcxGridTableController;
function GetGridView: TcxGridTableView;
function GetViewInfo: TcxGridTableViewInfo;
protected
function GetItemsListBoxClass: TcxCustomGridTableItemsListBoxClass; override;
function GetItemsPageCaption: string; override;
property ColumnsListBox: TcxGridTableColumnsListBox read GetColumnsListBox;
property GridView: TcxGridTableView read GetGridView;
property ViewInfo: TcxGridTableViewInfo read GetViewInfo;
public
property Controller: TcxGridTableController read GetController;
property ColumnsPage: TcxTabSheet read GetColumnsPage;
end;
// drag open info
TcxGridDragOpenInfoMasterDataRowTab = class(TcxGridDragOpenInfoTab)
public
GridRow: TcxGridMasterDataRow;
constructor Create(ALevel: TcxGridLevel; AGridRow: TcxGridMasterDataRow); reintroduce; virtual;
function Equals(AInfo: TcxCustomGridDragOpenInfo): Boolean; override;
procedure Run; override;
end;
// popup
TcxGridColumnsCustomizationPopup = class(TcxCustomGridItemsCustomizationPopup)
private
function GetGridView: TcxGridTableView;
protected
procedure ItemClicked(AItem: TObject; AChecked: Boolean); override;
procedure SetItemIndex(AItem: TObject; AIndex: Integer); override;
public
property GridView: TcxGridTableView read GetGridView;
end;
// controllers
TcxGridTableEditingController = class(TcxGridEditingController)
private
FApplyingImmediateFiltering: Boolean;
function GetController: TcxGridTableController;
function GetGridView: TcxGridTableView;
protected
function CanInitEditing: Boolean; override;
function CanUpdateEditValue: Boolean; override;
procedure DoEditChanged; override;
procedure DoEditKeyDown(var Key: Word; Shift: TShiftState); override;
function GetHideEditOnFocusedRecordChange: Boolean; override;
procedure InitEdit; override;
procedure PostEditingData; override;
property ApplyingImmediateFiltering: Boolean read FApplyingImmediateFiltering write FApplyingImmediateFiltering;
public
property Controller: TcxGridTableController read GetController;
property GridView: TcxGridTableView read GetGridView;
end;
TcxGridTableController = class(TcxCustomGridTableController)
private
FCellSelectionAnchor: TcxGridColumn;
FHorzSizingColumn: TcxGridColumn;
FIsFilterPopupOpenedFromHeader: Boolean;
FKeepFilterRowFocusing: Boolean;
FLeftPos: Integer;
FPressedColumn: TcxGridColumn;
FSelectedColumns: TList;
function GetColumnsCustomizationPopup: TcxGridColumnsCustomizationPopup;
function GetCustomizationForm: TcxGridTableCustomizationForm;
function GetEditingController: TcxGridTableEditingController;
function GetFocusedColumn: TcxGridColumn;
function GetFocusedColumnIndex: Integer;
function GetFocusedRow: TcxCustomGridRow;
function GetFocusedRowIndex: Integer;
function GetGridView: TcxGridTableView;
function GetIsColumnHorzSizing: Boolean;
function GetSelectedColumn(Index: Integer): TcxGridColumn;
function GetSelectedColumnCount: Integer;
function GetSelectedRow(Index: Integer): TcxCustomGridRow;
function GetSelectedRowCount: Integer;
function GetTopRowIndex: Integer;
function GetViewData: TcxGridViewData;
function GetViewInfo: TcxGridTableViewInfo;
procedure SetFocusedColumn(Value: TcxGridColumn);
procedure SetFocusedColumnIndex(Value: Integer);
procedure SetFocusedRow(Value: TcxCustomGridRow);
procedure SetFocusedRowIndex(Value: Integer);
procedure SetLeftPos(Value: Integer);
procedure SetPressedColumn(Value: TcxGridColumn);
procedure SetTopRowIndex(Value: Integer);
procedure AddSelectedColumn(AColumn: TcxGridColumn);
procedure RemoveSelectedColumn(AColumn: TcxGridColumn);
protected
function CanAppend(ACheckOptions: Boolean): Boolean; override;
function CanDelete(ACheckOptions: Boolean): Boolean; override;
function CanEdit: Boolean; override;
function CanInsert(ACheckOptions: Boolean): Boolean; override;
procedure CheckCoordinates; override;
procedure CheckLeftPos(var Value: Integer);
procedure FocusedItemChanged(APrevFocusedItem: TcxCustomGridTableItem); override;
procedure FocusedRecordChanged(APrevFocusedRecordIndex, AFocusedRecordIndex: Integer;
ANewItemRecordFocusingChanged: Boolean); override;
function GetDesignHitTest(AHitTest: TcxCustomGridHitTest): Boolean; override;
function GetFocusedRecord: TcxCustomGridRecord; override;
function GetIsRecordsScrollHorizontal: Boolean; override;
function GetItemsCustomizationPopupClass: TcxCustomGridItemsCustomizationPopupClass; override;
function GetMaxTopRecordIndexValue: Integer; override;
function GetMouseWheelScrollingKind: TcxMouseWheelScrollingKind; override;
function GetScrollBarRecordCount: Integer; override;
function IsColumnFixedDuringHorzSizing(AColumn: TcxGridColumn): Boolean; virtual;
function IsKeyForMultiSelect(AKey: Word; AShift: TShiftState;
AFocusedRecordChanged: Boolean): Boolean; override;
function IsPixelScrollBar(AKind: TScrollBarKind): Boolean; override;
procedure LeftPosChanged; virtual;
function NeedsAdditionalRowsScrolling(AIsCallFromMaster: Boolean = False): Boolean; virtual;
procedure RemoveFocus; override;
procedure ScrollData(ADirection: TcxDirection); override;
procedure SetFocusedRecord(Value: TcxCustomGridRecord); override;
procedure ShowNextPage; override;
procedure ShowPrevPage; override;
// internal draganddrop data scrolling
function CanScrollData(ADirection: TcxDirection): Boolean; override;
// selection
function CanPostponeRecordSelection: Boolean; override;
function CanProcessMultiSelect(AHitTest: TcxCustomGridHitTest;
AShift: TShiftState): Boolean; override;
procedure DoMouseNormalSelection(AHitTest: TcxCustomGridHitTest); override;
procedure DoMouseRangeSelection(AClearSelection: Boolean = True; AData: TObject = nil); override;
procedure DoNormalSelection; override;
procedure MultiSelectKeyDown(var Key: Word; Shift: TShiftState); override;
function SupportsAdditiveSelection: Boolean; override;
function SupportsRecordSelectionToggling: Boolean; override;
// special row focusing
function DefocusSpecialRow: Boolean; virtual;
function FocusSpecialRow: Boolean; virtual;
procedure FilterRowFocusChanged; virtual;
procedure FilterRowFocusChanging(AValue: Boolean); virtual;
// pull focusing
procedure DoPullFocusingScrolling(ADirection: TcxDirection); override;
function GetPullFocusingScrollingDirection(X, Y: Integer; out ADirection: TcxDirection): Boolean; override;
function SupportsPullFocusing: Boolean; override;
// delphi drag and drop
function GetDragOpenInfo(AHitTest: TcxCustomGridHitTest): TcxCustomGridDragOpenInfo; override;
function GetDragScrollDirection(X, Y: Integer): TcxDirection; override;
// customization
procedure CheckCustomizationFormBounds(var R: TRect); override;
function GetColumnHeaderDragAndDropObjectClass: TcxGridColumnHeaderMovingObjectClass; virtual;
function GetCustomizationFormClass: TcxCustomGridCustomizationFormClass; override;
// cells selection
function CanProcessCellMultiSelect(APrevFocusedColumn: TcxGridColumn): Boolean; virtual;
procedure CellMultiSelectKeyDown(var Key: Word; Shift: TShiftState); virtual;
procedure DoNormalCellSelection;
procedure DoRangeCellSelection;
function GetCellMultiSelect: Boolean; virtual;
property CellMultiSelect: Boolean read GetCellMultiSelect;
// BeginsWith mask
procedure AddBeginsWithMask(var AValue: Variant);
procedure RemoveBeginsWithMask(var AValue: Variant);
function GetBeginsWithMaskPos(const AValue: string): Integer;
function GetEditingControllerClass: TcxGridEditingControllerClass; override;
property IsFilterPopupOpenedFromHeader: Boolean read FIsFilterPopupOpenedFromHeader
write FIsFilterPopupOpenedFromHeader;
property KeepFilterRowFocusing: Boolean read FKeepFilterRowFocusing write FKeepFilterRowFocusing;
property ViewData: TcxGridViewData read GetViewData;
property ViewInfo: TcxGridTableViewInfo read GetViewInfo;
public
constructor Create(AGridView: TcxCustomGridView); override;
destructor Destroy; override;
procedure CheckScrolling(const P: TPoint); override;
procedure ClearGrouping;
procedure ClearSelection; override;
procedure DoCancelMode; override;
function IsFilterRowFocused: Boolean;
function IsNewItemRowFocused: Boolean;
function IsSpecialRowFocused: Boolean; virtual;
procedure MakeItemVisible(AItem: TcxCustomGridTableItem); override;
procedure SelectAll; override;
procedure InitScrollBarsParameters; override;
function IsDataFullyVisible(AIsCallFromMaster: Boolean = False): Boolean; override;
procedure Scroll(AScrollBarKind: TScrollBarKind; AScrollCode: TScrollCode;
var AScrollPos: Integer); override;
procedure EndDragAndDrop(Accepted: Boolean); override;
procedure DoKeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
// cells selection
procedure ClearCellSelection;
procedure SelectAllColumns;
procedure SelectCells(AFromColumn, AToColumn: TcxGridColumn;
AFromRowIndex, AToRowIndex: Integer);
procedure SelectColumns(AFromColumn, AToColumn: TcxGridColumn);
property CellSelectionAnchor: TcxGridColumn read FCellSelectionAnchor write FCellSelectionAnchor;
property ColumnsCustomizationPopup: TcxGridColumnsCustomizationPopup read GetColumnsCustomizationPopup;
property CustomizationForm: TcxGridTableCustomizationForm read GetCustomizationForm;
property EditingController: TcxGridTableEditingController read GetEditingController;
property FocusedColumn: TcxGridColumn read GetFocusedColumn write SetFocusedColumn;
property FocusedColumnIndex: Integer read GetFocusedColumnIndex write SetFocusedColumnIndex;
property FocusedRow: TcxCustomGridRow read GetFocusedRow write SetFocusedRow;
property FocusedRowIndex: Integer read GetFocusedRowIndex write SetFocusedRowIndex;
property GridView: TcxGridTableView read GetGridView;
property HorzSizingColumn: TcxGridColumn read FHorzSizingColumn;
property IsColumnHorzSizing: Boolean read GetIsColumnHorzSizing;
property LeftPos: Integer read FLeftPos write SetLeftPos;
property PressedColumn: TcxGridColumn read FPressedColumn write SetPressedColumn;
property SelectedColumnCount: Integer read GetSelectedColumnCount;
property SelectedColumns[Index: Integer]: TcxGridColumn read GetSelectedColumn;
property SelectedRowCount: Integer read GetSelectedRowCount;
property SelectedRows[Index: Integer]: TcxCustomGridRow read GetSelectedRow;
property TopRowIndex: Integer read GetTopRowIndex write SetTopRowIndex;
end;
{ painters }
// column container
TcxGridColumnContainerPainter = class(TcxCustomGridPartPainter)
private
function GetViewInfo: TcxGridColumnContainerViewInfo;
protected
procedure DrawContent; override;
procedure DrawItems; virtual;
function DrawItemsFirst: Boolean; virtual;
function ExcludeFromClipRect: Boolean; override;
property ViewInfo: TcxGridColumnContainerViewInfo read GetViewInfo;
end;
// header
TcxGridColumnHeaderAreaPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridColumnHeaderAreaViewInfo;
protected
function ExcludeFromClipRect: Boolean; override;
property ViewInfo: TcxGridColumnHeaderAreaViewInfo read GetViewInfo;
end;
TcxGridColumnHeaderSortingMarkPainter = class(TcxGridColumnHeaderAreaPainter)
protected
procedure Paint; override;
end;
TcxGridColumnHeaderFilterButtonPainter = class(TcxGridColumnHeaderAreaPainter)
private
function GetViewInfo: TcxGridColumnHeaderFilterButtonViewInfo;
protected
procedure Paint; override;
property ViewInfo: TcxGridColumnHeaderFilterButtonViewInfo read GetViewInfo;
end;
TcxGridColumnHeaderGlyphPainter = class(TcxGridColumnHeaderAreaPainter)
private
function GetViewInfo: TcxGridColumnHeaderGlyphViewInfo;
protected
procedure Paint; override;
property ViewInfo: TcxGridColumnHeaderGlyphViewInfo read GetViewInfo;
end;
TcxGridColumnHeaderPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridColumnHeaderViewInfo;
protected
procedure DrawAreas; virtual;
procedure DrawBorders; override;
procedure DrawContent; override;
procedure DrawPressed; virtual;
function ExcludeFromClipRect: Boolean; override;
procedure Paint; override;
property ViewInfo: TcxGridColumnHeaderViewInfo read GetViewInfo;
end;
TcxGridHeaderPainter = class(TcxGridColumnContainerPainter)
protected
function DrawItemsFirst: Boolean; override;
end;
// group by box
TcxGridGroupByBoxPainter = class(TcxGridColumnContainerPainter)
protected
procedure DrawBackground(const R: TRect); override;
procedure DrawContent; override;
function DrawItemsFirst: Boolean; override;
end;
// footer
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?