cxgridrows.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,895 行 · 第 1/5 页
PAS
1,895 行
procedure GetViewParams(var AParams: TcxViewParams); override;
function HasFooters: Boolean; override;
function HasLastHorzGridLine: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
property InfoText: string read GetInfoText;
property Options: TcxGridSpecialRowOptions read GetOptions;
property ShowInfoText: Boolean read GetShowInfoText;
end;
// filtering row
TcxGridFilterRowViewInfo = class(TcxGridNewItemRowViewInfo)
private
function GetGridRecord: TcxGridFilterRow;
protected
function GetOptions: TcxGridSpecialRowOptions; override;
function GetShowInfoText: Boolean; override;
function GetStyleIndex: Integer; override;
public
property GridRecord: TcxGridFilterRow read GetGridRecord;
end;
// details site
{$IFDEF USETABCONTROL}
TcxGridMasterDataRowDetailsSiteLeftTabsViewInfo = class(TcxGridDetailsSiteLeftTabsViewInfo)
private
function GetBottomGridLineColor: TColor;
function GetBottomGridLineWidth: Integer;
function GetSiteViewInfo: TcxGridDetailsSiteViewInfo;
protected
function CalculateHeight: Integer; override;
function GetBottomGridLineBounds: TRect; virtual;
function GetPainterClass: TcxGridDetailsSiteTabsPainterClass; override;
function GetTabControlBounds: TRect; override;
property BottomGridLineWidth: Integer read GetBottomGridLineWidth;
public
function HasBottomGridLine: Boolean; virtual;
property BottomGridLineBounds: TRect read GetBottomGridLineBounds;
property BottomGridLineColor: TColor read GetBottomGridLineColor;
property SiteViewInfo: TcxGridDetailsSiteViewInfo read GetSiteViewInfo;
end;
{$ENDIF}
TcxGridDetailsSiteViewInfoClass = class of TcxGridDetailsSiteViewInfo;
TcxGridDetailsSiteViewInfo = class(TcxCustomGridDetailsSiteViewInfo)
private
FMasterDataRowViewInfo: TcxGridMasterDataRowViewInfo;
function GetCacheItem: TcxGridMasterTableViewInfoCacheItem;
function GetMasterGridView: TcxGridTableView;
function GetMasterGridViewInfo: TcxGridTableViewInfo;
protected
procedure ControlFocusChanged; virtual;
function GetActiveGridView: TcxCustomGridView; override;
function GetActiveGridViewExists: Boolean; override;
function GetActiveGridViewValue: TcxCustomGridView; override;
function GetActiveLevel: TcxGridLevel; override;
function GetCanvas: TcxCanvas; override;
function GetContainer: TcxControl; override;
function GetDesignController: TcxCustomGridDesignController; override;
function GetFullyVisible: Boolean; override;
function GetHeight: Integer; override;
function GetMasterRecord: TObject; override;
function GetMaxHeight: Integer; override;
function GetMaxNormalHeight: Integer; override;
function GetMaxWidth: Integer; override;
function GetNormalHeight: Integer; override;
{$IFDEF USETABCONTROL}
function GetTabsViewInfoClass: TcxCustomGridDetailsSiteTabsViewInfoClass; override;
{$ENDIF}
function GetVisible: Boolean; override;
function GetWidth: Integer; override;
procedure InitTabHitTest(AHitTest: TcxGridDetailsSiteTabHitTest); override;
property CacheItem: TcxGridMasterTableViewInfoCacheItem read GetCacheItem;
property MasterGridView: TcxGridTableView read GetMasterGridView;
property MasterGridViewInfo: TcxGridTableViewInfo read GetMasterGridViewInfo;
property MasterDataRowViewInfo: TcxGridMasterDataRowViewInfo read FMasterDataRowViewInfo;
public
constructor Create(AMasterDataRowViewInfo: TcxGridMasterDataRowViewInfo); reintroduce; virtual;
destructor Destroy; override;
procedure ChangeActiveTab(ALevel: TcxGridLevel; AFocusView: Boolean = False); override;
function DetailHasData(ALevel: TcxGridLevel): Boolean; override;
function HasMaxHeight: Boolean;
function SupportsTabAccelerators: Boolean; override;
end;
// master data row
TcxGridExpandButtonCellViewInfoClass = class of TcxGridExpandButtonCellViewInfo;
TcxGridExpandButtonCellViewInfo = class(TcxGridCellViewInfo)
private
function GetRecordViewInfo: TcxGridMasterDataRowViewInfo;
function GetRightBorderRestSpaceBounds: TRect;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetBackgroundBitmap: TBitmap; override;
function GetBaseWidth: Integer; virtual;
function GetBorderBounds(AIndex: TcxBorder): TRect; override;
function GetBorders: TcxBorders; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
property BaseWidth: Integer read GetBaseWidth;
property RightBorderRestSpaceBounds: TRect read GetRightBorderRestSpaceBounds;
public
property RecordViewInfo: TcxGridMasterDataRowViewInfo read GetRecordViewInfo;
end;
TcxGridDetailsAreaViewInfoClass = class of TcxGridDetailsAreaViewInfo;
TcxGridDetailsAreaViewInfo = class(TcxGridCellViewInfo)
private
function GetRecordViewInfo: TcxGridMasterDataRowViewInfo;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetBorders: TcxBorders; override;
public
property RecordViewInfo: TcxGridMasterDataRowViewInfo read GetRecordViewInfo;
end;
TcxGridMasterDataRowViewInfo = class(TcxGridDataRowViewInfo)
private
FDetailsAreaViewInfo: TcxGridDetailsAreaViewInfo;
FDetailsSiteViewInfo: TcxGridDetailsSiteViewInfo;
FExpandButtonCellViewInfo: TcxGridExpandButtonCellViewInfo;
FRestHeight: Integer;
function GetCacheItem: TcxGridMasterTableViewInfoCacheItem;
function GetDetailsSiteIndentBounds: TRect;
function GetGridRecord: TcxGridMasterDataRow;
protected
procedure CalculateExpandButtonBounds(var ABounds: TRect); override;
function CalculateHeight: Integer; override;
function CalculateRestHeight(ARowHeight: Integer): Integer; virtual;
procedure ControlFocusChanged; override;
function GetDataHeight: Integer; override;
function GetDataIndent: Integer; override;
function GetDataWidth: Integer; override;
function GetDetailsSiteVisible: Boolean; virtual;
function GetExpandButtonAreaBounds: TRect; override;
function GetFullyVisible: Boolean; override;
function GetMaxHeight: Integer; override;
function IsDetailVisible(ADetail: TcxCustomGridView): Boolean; override;
procedure VisibilityChanged(AVisible: Boolean); override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetDetailsAreaViewInfoClass: TcxGridDetailsAreaViewInfoClass; virtual;
function GetDetailsSiteViewInfoClass: TcxGridDetailsSiteViewInfoClass; virtual;
function GetExpandButtonCellViewInfoClass: TcxGridExpandButtonCellViewInfoClass; virtual;
property CacheItem: TcxGridMasterTableViewInfoCacheItem read GetCacheItem;
property DetailsAreaViewInfo: TcxGridDetailsAreaViewInfo read FDetailsAreaViewInfo;
property DetailsSiteIndentBounds: TRect read GetDetailsSiteIndentBounds;
property ExpandButtonCellViewInfo: TcxGridExpandButtonCellViewInfo read FExpandButtonCellViewInfo;
property RestHeight: Integer read FRestHeight write FRestHeight;
public
constructor Create(ARecordsViewInfo: TcxCustomGridRecordsViewInfo;
ARecord: TcxCustomGridRecord); override;
destructor Destroy; override;
procedure BeforeRecalculation; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
function ProcessDialogChar(ACharCode: Word): Boolean; override;
function SupportsTabAccelerators: Boolean; virtual;
property DetailsSiteViewInfo: TcxGridDetailsSiteViewInfo read FDetailsSiteViewInfo;
property DetailsSiteVisible: Boolean read GetDetailsSiteVisible;
property GridRecord: TcxGridMasterDataRow read GetGridRecord;
end;
// group row
TcxGridGroupCellViewInfo = class(TcxGridCellViewInfo)
private
function GetExpandedAreaBounds: TRect;
function GetGridRecord: TcxGridGroupRow;
function GetRecordViewInfo: TcxGridGroupRowViewInfo;
function GetRowStyle: TcxGridGroupRowStyle;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetAlwaysSelected: Boolean; override;
function GetBackgroundBitmap: TBitmap; override;
function GetBorderBounds(AIndex: TcxBorder): TRect; override;
function GetBorderColor(AIndex: TcxBorder): TColor; override;
function GetBorders: TcxBorders; override;
function GetBorderWidth(AIndex: TcxBorder): Integer; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function HasCustomDraw: Boolean; override;
property ExpandedAreaBounds: TRect read GetExpandedAreaBounds;
property RowStyle: TcxGridGroupRowStyle read GetRowStyle;
public
function CanDrawSelected: Boolean; override;
property GridRecord: TcxGridGroupRow read GetGridRecord;
property RecordViewInfo: TcxGridGroupRowViewInfo read GetRecordViewInfo;
end;
TcxGridGroupRowSpacerViewInfoClass = class of TcxGridGroupRowSpacerViewInfo;
TcxGridGroupRowSpacerViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FRowViewInfo: TcxGridGroupRowViewInfo;
function GetGridView: TcxGridTableView;
protected
function CalculateWidth: Integer; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetWidth: Integer; override;
function HasBackground: Boolean; override;
public
constructor Create(ARowViewInfo: TcxGridGroupRowViewInfo; const AText: string); reintroduce; virtual;
property GridView: TcxGridTableView read GetGridView;
property RowViewInfo: TcxGridGroupRowViewInfo read FRowViewInfo;
end;
TcxGridGroupSummaryCellViewInfoClass = class of TcxGridGroupSummaryCellViewInfo;
TcxGridGroupSummaryCellViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FIsLast: Boolean;
FRowViewInfo: TcxGridGroupRowViewInfo;
FSeparatorViewInfo: TcxGridGroupRowSpacerViewInfo;
FSummaryItem: TcxDataSummaryItem;
FTextWidth: Integer;
FValue: Variant;
function GetColumn: TcxGridColumn;
function GetGridView: TcxGridTableView;
procedure SetIsLast(Value: Boolean);
protected
function CalculateWidth: Integer; override;
function CanAlignWithColumn: Boolean;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
function GetAlignmentHorz: TAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function GetDesignSelectionBounds: TRect; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsDesignSelected: Boolean; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetSeparatorBounds: TRect; virtual;
function GetSeparatorText: string; virtual;
function GetShowEndEllipsis: Boolean; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function HasBackground: Boolean; override;
function HasCustomDraw: Boolean; override;
procedure InitHitTest(AHitTest: TcxCustomGridHitTest); override;
procedure Offset(DX, DY: Integer); override;
public
constructor Create(ARowViewInfo: TcxGridGroupRowViewInfo;
ASummaryItem: TcxDataSummaryItem; const AValue: Variant); reintroduce; virtual;
destructor Destroy; override;
procedure BeforeRecalculation; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
property Column: TcxGridColumn read GetColumn;
property GridView: TcxGridTableView read GetGridView;
property IsLast: Boolean read FIsLast write SetIsLast;
property RowViewInfo: TcxGridGroupRowViewInfo read FRowViewInfo;
property SeparatorViewInfo: TcxGridGroupRowSpacerViewInfo read FSeparatorViewInfo;
property SummaryItem: TcxDataSummaryItem read FSummaryItem;
property Value: Variant read FValue;
end;
TcxGridGroupRowViewInfo = class(TcxCustomGridRowViewInfo)
private
FCellViewInfo: TcxGridGroupCellViewInfo;
FSummaryBeginningSpacerViewInfo: TcxGridGroupRowSpacerViewInfo;
FSummaryCellsWithoutColumns: TList;
FSummaryCellViewInfos: TList;
FSummaryEndingSpacerViewInfo: TcxGridGroupRowSpacerViewInfo;
function GetGridRecord: TcxGridGroupRow;
function GetRowStyle: TcxGridGroupRowStyle;
function GetSummaryCellLayout: TcxGridGroupSummaryLayout;
function GetSummaryCellViewInfo(Index: Integer): TcxGridGroupSummaryCellViewInfo;
function GetSummaryCellViewInfoCount: Integer;
protected
procedure CalculateExpandButtonBounds(var ABounds: TRect); override;
function CalculateHeight: Integer; override;
function CanSize: Boolean; override;
procedure CheckRowHeight(var AValue: Integer); override;
function GetAutoHeight: Boolean; override;
function GetBackgroundBitmap: TBitmap; override;
function GetExpandButtonAreaBounds: TRect; override;
function GetFocusRectBounds: TRect; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetSeparatorBounds: TRect; override;
function GetSeparatorIndentBounds: TRect; virtual;
function GetShowSeparator: Boolean; override;
function HasFocusRect: Boolean; override;
function HasFooter(ALevel: Integer): Boolean; override;
procedure Offset(DX, DY: Integer); override;
procedure SetRowHeight(Value: Integer); override;
function CreateSpacerViewInfo(const AText: string): TcxGridGroupRowSpacerViewInfo;
procedure CreateSpacerViewInfos; virtual;
procedure DestroySpacerViewInfos; virtual;
function GetSpacerViewInfoClass: TcxGridGroupRowSpacerViewInfoClass; virtual;
function AddSummaryCellViewInfo(ASummaryItem: TcxDataSummaryItem;
const AValue: Variant): TcxGridGroupSummaryCellViewInfo;
procedure CreateSummaryCellViewInfos; virtual;
procedure DestroySummaryCellViewInfos; virtual;
function GetSummaryCellViewInfoClass: TcxGridGroupSummaryCellViewInfoClass; virtual;
procedure CalculateSummaryCells; overload; virtual;
procedure CalculateSummaryCells(ACellViewInfos: TList;
const AAreaBounds: TRect; AAlignment: TAlignment; AAutoWidth: Boolean); overload; virtual;
function CalculateSummaryCellWidths(ACellViewInfos: TList; AAvailableWidth: Integer;
AAutoWidth: Boolean): TcxAutoWidthObject; virtual;
function GetColumnSummaryCellsAreaBounds(AColumnHeaderViewInfo: TcxGridColumnHeaderViewInfo): TRect; virtual;
procedure GetColumnSummaryCellViewInfos(AColumn: TcxGridColumn; AList: TList);
function GetSummaryBeginningSpacerBounds: TRect; virtual;
function GetSummaryEndingSpacerBounds: TRect; virtual;
function GetSummaryBeginningSpacerText: string; virtual;
function GetSummaryEndingSpacerText: string; virtual;
function GetSummaryCellAutoWidth: Boolean; virtual;
function GetSummaryCellsAreaBounds(AForAlignableCells: Boolean): TRect; virtual;
function GetSummaryCellsBounds(const AAreaBounds: TRect;
AWidths: TcxAutoWidthObject; AAlignment: TAlignment; AAutoWidth: Boolean): TRect; virtual;
function GetUnalignableSummaryCells: TList; virtual;
function HasUnalignableSummaryCells: Boolean; virtual;
property SummaryBeginningSpacerViewInfo: TcxGridGroupRowSpacerViewInfo read FSummaryBeginningSpacerViewInfo;
property SummaryEndingSpacerViewInfo: TcxGridGroupRowSpacerViewInfo read FSummaryEndingSpacerViewInfo;
property SummaryCellAutoWidth: Boolean read GetSummaryCellAutoWidth;
property SummaryCellLayout: TcxGridGroupSummaryLayout read GetSummaryCellLayout;
property SummaryCells: TList read FSummaryCellViewInfos;
property SummaryCellsWithoutColumns: TList read FSummaryCellsWithoutColumns;
property UnalignableSummaryCells: TList read GetUnalignableSummaryCells;
property RowStyle: TcxGridGroupRowStyle read GetRowStyle;
public
constructor Create(ARecordsViewInfo: TcxCustomGridRecordsViewInfo;
ARecord: TcxCustomGridRecord); override;
destructor Destroy; override;
procedure BeforeRecalculation; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
property CellViewInfo: TcxGridGroupCellViewInfo read FCellViewInfo;
property GridRecord: TcxGridGroupRow read GetGridRecord;
property SeparatorIndentBounds: TRect read GetSeparatorIndentBounds;
property SummaryCellViewInfoCount: Integer read GetSummaryCellViewInfoCount;
property SummaryCellViewInfos[Index: Integer]: TcxGridGroupSummaryCellViewInfo read GetSummaryCellViewInfo;
end;
implementation
uses
SysUtils, Math, Forms, cxVariants, cxGrid, cxEdit, dxOffice11;
{ TcxGridPreviewHitTest }
class function TcxGridPreviewHitTest.GetHitTestCode: Integer;
begin
Result := htPreview;
end;
{ TcxGridDataCellPainter }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?