cxgridtableview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,513 行 · 第 1/5 页
PAS
1,513 行
TcxGridFooterCellPainter = class(TcxGridColumnHeaderPainter)
protected
procedure DrawBorders; override;
procedure DrawContent; override;
end;
TcxGridFooterPainterClass = class of TcxGridFooterPainter;
TcxGridFooterPainter = class(TcxGridColumnContainerPainter)
private
function GetViewInfo: TcxGridFooterViewInfo;
protected
procedure DrawBackground(const R: TRect); override;
procedure DrawBorders; override;
function DrawItemsFirst: Boolean; override;
procedure DrawSeparator; virtual;
property ViewInfo: TcxGridFooterViewInfo read GetViewInfo;
end;
// indicator
TcxCustomGridIndicatorItemPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxCustomGridIndicatorItemViewInfo;
protected
function ExcludeFromClipRect: Boolean; override;
property ViewInfo: TcxCustomGridIndicatorItemViewInfo read GetViewInfo;
end;
TcxGridIndicatorHeaderItemPainter = class(TcxCustomGridIndicatorItemPainter)
private
function GetViewInfo: TcxGridIndicatorHeaderItemViewInfo;
protected
function DrawBackgroundHandler(ACanvas: TcxCanvas; const ABounds: TRect): Boolean; override;
procedure DrawContent; override;
procedure DrawQuickCustomizationMark; virtual;
property ViewInfo: TcxGridIndicatorHeaderItemViewInfo read GetViewInfo;
end;
TcxGridIndicatorRowItemPainter = class(TcxCustomGridIndicatorItemPainter)
private
function GetViewInfo: TcxGridIndicatorRowItemViewInfo;
protected
procedure DrawContent; override;
property ViewInfo: TcxGridIndicatorRowItemViewInfo read GetViewInfo;
end;
TcxGridIndicatorFooterItemPainter = class(TcxCustomGridIndicatorItemPainter)
private
function GetViewInfo: TcxGridIndicatorFooterItemViewInfo;
protected
procedure DrawContent; override;
procedure DrawBorders; override;
property ViewInfo: TcxGridIndicatorFooterItemViewInfo read GetViewInfo;
end;
TcxGridIndicatorPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridIndicatorViewInfo;
protected
procedure DrawContent; override;
procedure DrawItems; virtual;
function DrawItemsFirst: Boolean; virtual;
function ExcludeFromClipRect: Boolean; override;
property ViewInfo: TcxGridIndicatorViewInfo read GetViewInfo;
end;
// custom row
TcxCustomGridRowPainter = class(TcxCustomGridRecordPainter)
private
function GetViewInfo: TcxCustomGridRowViewInfo;
protected
procedure DrawFooters; virtual;
procedure DrawIndent; virtual;
procedure DrawIndentPart(ALevel: Integer; const ABounds: TRect); virtual;
procedure DrawLastHorzGridLine; virtual;
procedure DrawSeparator; virtual;
procedure Paint; override;
property ViewInfo: TcxCustomGridRowViewInfo read GetViewInfo;
end;
// rows
TcxGridRowsPainterClass = class of TcxGridRowsPainter;
TcxGridRowsPainter = class(TcxCustomGridRecordsPainter)
private
function GetViewInfo: TcxGridRowsViewInfo;
protected
procedure Paint; override;
property ViewInfo: TcxGridRowsViewInfo read GetViewInfo;
public
class procedure DrawDataRowCells(ARowViewInfo: TcxCustomGridRowViewInfo); virtual;
end;
// table
TcxGridTablePainter = class(TcxCustomGridTablePainter)
private
FGridLines: TList;
function GetController: TcxGridTableController;
function GetGridView: TcxGridTableView;
function GetViewInfo: TcxGridTableViewInfo;
protected
function CanOffset(AItemsOffset, DX, DY: Integer): Boolean; override;
procedure DrawFooter; virtual;
procedure DrawGroupByBox; virtual;
procedure DrawHeader; virtual;
procedure DrawIndicator; virtual;
procedure DrawRecords; override;
procedure Offset(AItemsOffset: Integer); override;
procedure Offset(DX, DY: Integer); override;
procedure PaintContent; override;
public
procedure AddGridLine(const R: TRect);
property Controller: TcxGridTableController read GetController;
property GridView: TcxGridTableView read GetGridView;
property ViewInfo: TcxGridTableViewInfo read GetViewInfo;
end;
{ view infos }
// column container
TcxGridColumnContainerViewInfo = class(TcxCustomGridPartViewInfo)
private
FItemHeight: Integer;
FItems: TList;
function GetController: TcxGridTableController;
function GetCount: Integer;
function GetGridView: TcxGridTableView;
function GetGridViewInfo: TcxGridTableViewInfo;
function GetInternalItem(Index: Integer): TcxGridColumnHeaderViewInfo;
function GetItem(Index: Integer): TcxGridColumnHeaderViewInfo;
function GetItemHeight: Integer;
protected
function CreateItem(AIndex: Integer): TcxGridColumnHeaderViewInfo; virtual;
procedure CreateItems; virtual;
procedure DestroyItems; virtual;
function GetColumn(Index: Integer): TcxGridColumn; virtual; abstract;
function GetColumnCount: Integer; virtual; abstract;
function GetItemClass: TcxGridColumnHeaderViewInfoClass; virtual;
function CalculateItemHeight: Integer; virtual;
function GetAutoHeight: Boolean; virtual;
function GetColumnAdditionalWidth(AColumn: TcxGridColumn): Integer;
function GetColumnMinWidth(AColumn: TcxGridColumn): Integer; virtual;
function GetColumnNeighbors(AColumn: TcxGridColumn): TcxNeighbors; virtual;
function GetColumnWidth(AColumn: TcxGridColumn): Integer; virtual;
function GetItemAreaBounds(AItem: TcxGridColumnHeaderViewInfo): TRect; virtual;
function GetItemMultiLinePainting(AItem: TcxGridColumnHeaderViewInfo): Boolean; virtual;
function GetItemsAreaBounds: TRect; virtual;
function GetItemsHitTest(const P: TPoint): TcxCustomGridHitTest; virtual;
function GetKind: TcxGridColumnContainerKind; virtual; abstract;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetZonesAreaBounds: TRect; virtual;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
procedure Offset(DX, DY: Integer); override;
property AutoHeight: Boolean read GetAutoHeight;
property ColumnCount: Integer read GetColumnCount;
property Columns[Index: Integer]: TcxGridColumn read GetColumn;
property Controller: TcxGridTableController read GetController;
property ZonesAreaBounds: TRect read GetZonesAreaBounds;
public
constructor Create(AGridViewInfo: TcxCustomGridTableViewInfo); override;
destructor Destroy; override;
procedure BeforeRecalculation; override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
function GetZone(const P: TPoint): TcxGridItemContainerZone; virtual;
property Count: Integer read GetCount;
property GridView: TcxGridTableView read GetGridView;
property GridViewInfo: TcxGridTableViewInfo read GetGridViewInfo;
property InternalItems[Index: Integer]: TcxGridColumnHeaderViewInfo read GetInternalItem;
property ItemHeight: Integer read GetItemHeight;
property Items[Index: Integer]: TcxGridColumnHeaderViewInfo read GetItem; default;
property ItemsAreaBounds: TRect read GetItemsAreaBounds;
property Kind: TcxGridColumnContainerKind read GetKind;
end;
// column header areas
TcxGridColumnHeaderAreaViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo;
function GetColumn: TcxGridColumn;
function GetGridView: TcxGridTableView;
function GetGridViewInfo: TcxGridTableViewInfo;
protected
function GetAlignmentVert: TcxAlignmentVert; override;
function GetCanvas: TcxCanvas; override;
function GetHeight: Integer; override;
function GetWidth: Integer; override;
function HasMouse(AHitTest: TcxCustomGridHitTest): Boolean; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
//procedure Invalidate; virtual;
function NeedsContainerHotTrack: Boolean; virtual;
function OccupiesSpace: Boolean; virtual;
function ResidesInContent: Boolean; virtual;
property Column: TcxGridColumn read GetColumn;
property GridView: TcxGridTableView read GetGridView;
property GridViewInfo: TcxGridTableViewInfo read GetGridViewInfo;
public
constructor Create(AColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo); reintroduce; virtual;
procedure Calculate(const ABounds: TRect; var ATextAreaBounds: TRect); reintroduce; virtual;
property AlignmentHorz: TAlignment read GetAlignmentHorz;
property AlignmentVert: TcxAlignmentVert read GetAlignmentVert;
property ColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo read FColumnHeaderViewInfo;
property Height: Integer read GetHeight;
property Width: Integer read GetWidth;
end;
TcxGridColumnHeaderSortingMarkViewInfo = class(TcxGridColumnHeaderAreaViewInfo)
private
function GetSortOrder: TcxGridSortOrder;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetAlignmentHorz: TAlignment; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
property SortOrder: TcxGridSortOrder read GetSortOrder;
end;
TcxGridColumnHeaderHorzSizingEdgeViewInfo = class(TcxGridColumnHeaderAreaViewInfo)
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetAlignmentHorz: TAlignment; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function OccupiesSpace: Boolean; override;
function ResidesInContent: Boolean; override;
public
procedure Calculate(const ABounds: TRect; var ATextAreaBounds: TRect); override;
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
end;
TcxGridColumnHeaderFilterButtonViewInfo = class(TcxGridColumnHeaderAreaViewInfo,
IcxGridFilterPopupOwner)
private
function GetActive: Boolean;
function GetDropDownWindowValue: TcxGridFilterPopup;
protected
{ IcxGridFilterPopupOwner }
function GetItem: TcxCustomGridTableItem;
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
procedure DropDown; override;
function EmulateMouseMoveAfterCalculate: Boolean; override;
function GetAlignmentHorz: TAlignment; override;
function GetAlwaysVisible: Boolean; virtual;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetVisible: Boolean; override;
function NeedsContainerHotTrack: Boolean; override;
function OccupiesSpace: Boolean; override;
procedure StateChanged(APrevState: TcxGridCellState); override;
function CloseDropDownWindowOnDestruction: Boolean; override;
function DropDownWindowExists: Boolean; override;
function GetDropDownWindow: TcxCustomGridPopup; override;
function GetDropDownWindowOwnerBounds: TRect; override;
function IsDropDownWindowOwner: Boolean; override;
property DropDownWindow: TcxGridFilterPopup read GetDropDownWindowValue;
property AlwaysVisible: Boolean read GetAlwaysVisible;
public
function MouseMove(AHitTest: TcxCustomGridHitTest; AShift: TShiftState): Boolean; override;
property Active: Boolean read GetActive;
end;
TcxGridColumnHeaderGlyphViewInfo = class(TcxGridColumnHeaderAreaViewInfo)
private
function GetGlyph: TBitmap;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetAlignmentHorz: TAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
public
property Glyph: TBitmap read GetGlyph;
end;
// column header
TcxGridColumnHeaderViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FAdditionalHeightAtTop: Integer;
FAdditionalWidthAtLeft: Integer;
FAreaViewInfos: TList;
FColumn: TcxGridColumn;
FContainer: TcxGridColumnContainerViewInfo;
FNeighbors: TcxNeighbors;
FRealWidth: Integer;
FTextAreaBounds: TRect;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?