cxgridtableview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,513 行 · 第 1/5 页
PAS
1,513 行
FWidth: Integer;
function GetAreaViewInfoCount: Integer;
function GetAreaViewInfo(Index: Integer): TcxGridColumnHeaderAreaViewInfo;
function GetGridView: TcxGridTableView;
function GetGridViewInfo: TcxGridTableViewInfo;
function GetHasTextOffsetLeft: Boolean;
function GetHasTextOffsetRight: Boolean;
function GetIndex: Integer;
function GetIsFixed: Boolean;
function GetRealBounds: TRect;
function GetRealWidth: Integer;
procedure EnumAreaViewInfoClasses(AClass: TClass);
procedure CreateAreaViewInfos;
procedure DestroyAreaViewInfos;
protected
function AreasNeedHotTrack: Boolean;
function CalculateHasTextOffset(ASide: TAlignment): Boolean; virtual;
function CalculateHeight: Integer; override;
function CalculateRealWidth(Value: Integer): Integer;
procedure CalculateTextAreaBounds; virtual;
procedure CalculateVisible(ALeftBound, AWidth: Integer); virtual;
function CalculateWidth: Integer; override;
function CanFilter: Boolean; virtual;
function CanHorzSize: Boolean; virtual;
function CanPress: Boolean; virtual;
function CanShowHint: Boolean; override;
function CanSort: Boolean; virtual;
procedure CheckWidth(var Value: Integer); virtual;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
procedure DoCalculateParams; override;
function GetAlignmentHorz: TAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetAreaBounds: TRect; override;
procedure GetAreaViewInfoClasses(AProc: TcxGridClassEnumeratorProc); virtual;
function GetBackgroundBitmap: TBitmap; override;
function GetBorders: TcxBorders; override;
function GetBorderWidth(AIndex: TcxBorder): Integer; override;
function GetCanvas: TcxCanvas; override;
function GetCaption: string; virtual;
class function GetCellBorderWidth(ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass): Integer; virtual;
class function GetCellHeight(ATextHeight: Integer;
ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass): Integer; override;
function GetDataOffset: Integer; virtual;
function GetHeight: Integer; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetHotTrack: Boolean; override;
function GetIsDesignSelected: Boolean; override;
function GetIsPressed: Boolean; virtual;
function GetMaxWidth: Integer; virtual;
function GetMinWidth: Integer; virtual;
function GetMultiLine: Boolean; override;
function GetMultiLinePainting: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetShowEndEllipsis: Boolean; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetWidth: Integer; override;
function HasCustomDraw: Boolean; override;
function HasFixedContentSpace: Boolean; virtual;
function HasGlyph: Boolean; virtual;
function HasHeaderAsContainer: Boolean;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
procedure Offset(DX, DY: Integer); override;
procedure SetWidth(Value: Integer); override;
procedure StateChanged(APrevState: TcxGridCellState); override;
property AdditionalWidthAtLeft: Integer read FAdditionalWidthAtLeft write FAdditionalWidthAtLeft;
property Caption: string read GetCaption;
property GridView: TcxGridTableView read GetGridView;
property GridViewInfo: TcxGridTableViewInfo read GetGridViewInfo;
property HasTextOffsetLeft: Boolean read GetHasTextOffsetLeft;
property HasTextOffsetRight: Boolean read GetHasTextOffsetRight;
public
constructor Create(AContainer: TcxGridColumnContainerViewInfo;
AColumn: TcxGridColumn); reintroduce; virtual;
destructor Destroy; override;
procedure BeforeRecalculation; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function GetBestFitWidth: Integer; override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
procedure InitAutoWidthItem(AAutoWidthItem: TcxAutoWidthItem);
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
property AreaViewInfoCount: Integer read GetAreaViewInfoCount;
property AreaViewInfos[Index: Integer]: TcxGridColumnHeaderAreaViewInfo read GetAreaViewInfo;
property Column: TcxGridColumn read FColumn;
property Container: TcxGridColumnContainerViewInfo read FContainer;
property DataOffset: Integer read GetDataOffset;
property Index: Integer read GetIndex;
property IsFixed: Boolean read GetIsFixed;
property IsPressed: Boolean read GetIsPressed;
property MaxWidth: Integer read GetMaxWidth;
property MinWidth: Integer read GetMinWidth;
property Neighbors: TcxNeighbors read FNeighbors write FNeighbors;
property RealBounds: TRect read GetRealBounds;
property RealWidth: Integer read GetRealWidth;
end;
// header
TcxGridHeaderViewInfoSpecificClass = class of TcxGridHeaderViewInfoSpecific;
TcxGridHeaderViewInfoSpecific = class
private
FContainerViewInfo: TcxGridHeaderViewInfo;
function GetGridViewInfo: TcxGridTableViewInfo;
function GetItemHeight: Integer;
protected
function CalculateHeight: Integer; virtual;
function GetHeight: Integer; virtual;
public
constructor Create(AContainerViewInfo: TcxGridHeaderViewInfo); virtual;
property ContainerViewInfo: TcxGridHeaderViewInfo read FContainerViewInfo;
property GridViewInfo: TcxGridTableViewInfo read GetGridViewInfo;
property Height: Integer read GetHeight;
property ItemHeight: Integer read GetItemHeight;
end;
TcxGridHeaderViewInfoClass = class of TcxGridHeaderViewInfo;
TcxGridHeaderViewInfo = class(TcxGridColumnContainerViewInfo)
private
FSpecific: TcxGridHeaderViewInfoSpecific;
protected
function GetColumn(Index: Integer): TcxGridColumn; override;
function GetColumnCount: Integer; override;
procedure AddIndicatorItems(AIndicatorViewInfo: TcxGridIndicatorViewInfo; ATopBound: Integer); virtual;
procedure CalculateColumnAutoWidths; virtual;
procedure CalculateColumnWidths; virtual;
function CalculateHeight: Integer; override;
procedure CalculateInvisible; override;
function CalculateItemHeight: Integer; override;
procedure CalculateItems; virtual;
procedure CalculateVisible; override;
function CalculateWidth: Integer; override;
function CanCalculateAutoWidths: Boolean; virtual;
function DrawColumnBackgroundHandler(ACanvas: TcxCanvas; const ABounds: TRect): Boolean; virtual;
function GetAlignment: TcxGridPartAlignment; override;
function GetAutoHeight: Boolean; override;
function GetColumnBackgroundBitmap: TBitmap; virtual;
function GetColumnNeighbors(AColumn: TcxGridColumn): TcxNeighbors; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsAutoWidth: Boolean; override;
function GetIsScrollable: Boolean; override;
function GetItemMultiLinePainting(AItem: TcxGridColumnHeaderViewInfo): Boolean; override;
function GetKind: TcxGridColumnContainerKind; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
function GetWidth: Integer; override;
function GetZonesAreaBounds: TRect; override;
function IsAlwaysVisibleForCalculation: Boolean; virtual;
function IsHeightAssigned: Boolean; virtual;
procedure Offset(DX, DY: Integer); override;
procedure RecalculateItemVisibles;
property ColumnBackgroundBitmap: TBitmap read GetColumnBackgroundBitmap;
public
constructor Create(AGridViewInfo: TcxCustomGridTableViewInfo); override;
destructor Destroy; override;
procedure AssignColumnWidths;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
property Specific: TcxGridHeaderViewInfoSpecific read FSpecific;
end;
// group by box
TcxGridGroupByBoxColumnHeaderViewInfo = class(TcxGridColumnHeaderViewInfo)
private
function GetContainer: TcxGridGroupByBoxViewInfo;
protected
function CalculateHeight: Integer; override;
function GetCaption: string; override;
function HasFixedContentSpace: Boolean; override;
function InheritedCalculateHeight: Integer;
public
property Container: TcxGridGroupByBoxViewInfo read GetContainer;
end;
TcxGridGroupByBoxViewInfoClass = class of TcxGridGroupByBoxViewInfo;
TcxGridGroupByBoxViewInfo = class(TcxGridColumnContainerViewInfo)
private
FCalculatingColumnWidth: Boolean;
function GetGroupByBoxVerOffset: Integer;
function GetLinkLineBounds(Index: Integer; Horizontal: Boolean): TRect;
protected
function GetColumn(Index: Integer): TcxGridColumn; override;
function GetColumnCount: Integer; override;
function GetItemClass: TcxGridColumnHeaderViewInfoClass; override;
function CalculateHeight: Integer; override;
function CalculateItemHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetAlignment: TcxGridPartAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetBackgroundBitmap: TBitmap; override;
function GetColumnWidth(AColumn: TcxGridColumn): Integer; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsAutoWidth: Boolean; override;
function GetIsScrollable: Boolean; override;
function GetItemAreaBounds(AItem: TcxGridColumnHeaderViewInfo): TRect; override;
function GetKind: TcxGridColumnContainerKind; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
property CalculatingColumnWidth: Boolean read FCalculatingColumnWidth;
property GroupByBoxVerOffset: Integer read GetGroupByBoxVerOffset;
public
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
property LinkLineBounds[Index: Integer; Horizontal: Boolean]: TRect read GetLinkLineBounds;
end;
// footer
TcxGridFooterCellViewInfoClass = class of TcxGridFooterCellViewInfo;
TcxGridFooterCellViewInfo = class(TcxGridColumnHeaderViewInfo)
private
FSummaryItem: TcxDataSummaryItem;
function GetContainer: TcxGridFooterViewInfo;
function GetSummary: TcxDataSummary;
protected
procedure AfterCalculateBounds(var ABounds: TRect); override;
function CanPress: Boolean; override;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
function GetAlignmentHorz: TAlignment; override;
function GetBackgroundBitmap: TBitmap; override;
procedure GetAreaViewInfoClasses(AProc: TcxGridClassEnumeratorProc); override;
function GetBorders: TcxBorders; override;
class function GetCellBorderWidth(ALookAndFeelPainter: TcxCustomLookAndFeelPainterClass): Integer; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsDesignSelected: Boolean; override;
function GetIsPressed: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetText: string; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function HasCustomDraw: Boolean; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
property Summary: TcxDataSummary read GetSummary;
public
constructor Create(AContainer: TcxGridColumnContainerViewInfo;
ASummaryItem: TcxDataSummaryItem); reintroduce; virtual;
function GetBestFitWidth: Integer; override;
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
property Container: TcxGridFooterViewInfo read GetContainer;
property SummaryItem: TcxDataSummaryItem read FSummaryItem;
end;
TcxGridFooterViewInfoClass = class of TcxGridFooterViewInfo;
TcxGridFooterViewInfo = class(TcxGridHeaderViewInfo)
private
FRowCount: Integer;
FSummaryItems: TList;
function GetMultipleSummaries: Boolean;
function GetRowCount: Integer;
function GetRowHeight: Integer;
protected
function CreateItem(AIndex: Integer): TcxGridColumnHeaderViewInfo; override;
procedure CreateItems; override;
procedure DestroyItems; override;
function GetColumn(Index: Integer): TcxGridColumn; override;
function GetColumnCount: Integer; override;
function GetItemClass: TcxGridColumnHeaderViewInfoClass; override;
procedure PrepareSummaryItems(ASummaryItems: TList); virtual;
function CalculateBounds: TRect; override;
function CalculateHeight: Integer; override;
function CalculateItemHeight: Integer; override;
procedure CalculateItem(AIndex: Integer); virtual;
procedure CalculateItems; override;
function CalculateRowCount: Integer; virtual;
function CanCalculateAutoWidths: Boolean; override;
function GetAlignment: TcxGridPartAlignment; override;
function GetAutoHeight: Boolean; override;
function GetBackgroundBitmap: TBitmap; override;
function GetBordersBounds: TRect; virtual;
function GetBorders: TcxBorders; override;
function GetBorderWidth(AIndex: TcxBorder): Integer; override;
function GetColumnWidth(AColumn: TcxGridColumn): Integer; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsAutoWidth: Boolean; override;
function GetIsScrollable: Boolean; override;
function GetItemAreaBounds(AItem: TcxGridColumnHeaderViewInfo): TRect; override;
function GetItemHeight(AColumn: TcxGridColumn): Integer; overload; virtual;
function GetItemHeight(AIndex: Integer): Integer; overload;
function GetItemHitTestClass: TcxCustomGridHitTestClass; virtual;
function GetItemLeftBound(AColumn: TcxGridColumn): Integer; o
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?