cxgridchartview.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,502 行 · 第 1/5 页
PAS
1,502 行
procedure PrepareCanvasForDrawText; override;
property ViewInfo: TcxGridChartToolBoxDataLevelActiveValueViewInfo read GetViewInfo;
end;
TcxGridChartToolBoxDataLevelInfoPainter = class(TcxCustomGridCellPainter)
protected
procedure DrawBackground; override;
function ExcludeFromClipRect: Boolean; override;
end;
TcxGridChartToolBoxCustomizeButtonPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridChartToolBoxCustomizeButtonViewInfo;
protected
procedure Paint; override;
property ViewInfo: TcxGridChartToolBoxCustomizeButtonViewInfo read GetViewInfo;
end;
TcxGridChartToolBoxDiagramSelectorPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridChartToolBoxDiagramSelectorViewInfo;
protected
procedure DrawContent; override;
procedure DrawImage; virtual;
procedure PrepareCanvasForDrawText; override;
property ViewInfo: TcxGridChartToolBoxDiagramSelectorViewInfo read GetViewInfo;
end;
TcxGridChartToolBoxPainter = class(TcxCustomGridCellPainter)
private
function GetViewInfo: TcxGridChartToolBoxViewInfo;
protected
procedure DrawContent; override;
procedure DrawDataLevelInfoConnectors; virtual;
procedure DrawItems(AOpaqueItems: Boolean); virtual;
function ExcludeFromClipRect: Boolean; override;
property ViewInfo: TcxGridChartToolBoxViewInfo read GetViewInfo;
end;
// view
TcxGridChartPainter = class(TcxCustomGridPainter)
private
function GetViewInfo: TcxGridChartViewInfo;
protected
procedure PaintAfter; override;
procedure PaintContent; override;
public
property ViewInfo: TcxGridChartViewInfo read GetViewInfo;
end;
{ view data }
TcxGridChartViewData = class(TcxCustomGridViewData)
private
FDataGroupIndex: Integer;
FSumOfValues: TVariantArray;
function GetCategory(AIndex: Integer): Variant;
function GetCategoryCount: Integer;
function GetChildCount: Integer;
function GetChildDataGroupIndex(Index: Integer): Integer;
function GetChildLevel: Integer;
function GetChildRecordIndex(Index: Integer): Integer;
function GetDataGroupIndex: Integer;
function GetGridView: TcxGridChartView;
function GetGroupValue(ADataGroupIndex, AIndex: Integer): Variant;
function GetSumOfValues(ASeriesIndex: Integer): Variant;
function GetValue(ASeriesIndex, AIndex: Integer): Variant;
function GetVisibleCategory(AIndex: Integer): Variant;
function GetVisibleCategoryCount: Integer;
function GetVisibleGroupValue(AVisibleDataGroupIndex, AIndex: Integer): Variant;
function GetVisibleGroupValueCount(AVisibleDataGroupIndex: Integer): Integer;
function GetVisibleValue(ASeriesIndex, AIndex: Integer): Variant;
procedure SetCategory(AIndex: Integer; const Value: Variant);
procedure SetCategoryCount(Value: Integer);
procedure SetGroupValue(ADataGroupIndex, AIndex: Integer; const Value: Variant);
procedure SetValue(ASeriesIndex, AIndex: Integer; const Value: Variant);
protected
function CalculateDataGroupIndex: Integer; virtual;
function CalculateSumOfValues(ASeriesIndex: Integer): Variant; virtual;
procedure CheckValueAtLevel(ALevel: Integer; var AValue: Variant);
function GetDataGroupIndexByLevel(ALevel: Integer): Integer;
function GetRecordIndexByValueIndex(AValueIndex: Integer): Integer;
procedure DataLevelsChanged; virtual;
function IsDataGrouped: Boolean;
function IsSummaryLevel: Boolean;
procedure CalculateSumsOfValues;
procedure SeriesPosChanged(ASeries: TcxGridChartSeries); virtual;
procedure Update(AInfo: TcxUpdateControlInfo); virtual;
procedure UpdateDataGroupIndex;
procedure UpdateSumsOfValues;
property ChildCount: Integer read GetChildCount;
property ChildDataGroupIndex[Index: Integer]: Integer read GetChildDataGroupIndex;
property ChildLevel: Integer read GetChildLevel;
property ChildRecordIndex[Index: Integer]: Integer read GetChildRecordIndex;
property DataGroupIndex: Integer read GetDataGroupIndex;
public
constructor Create(AGridView: TcxCustomGridView); override;
procedure GetVisibleGroupValues(ADataGroup: TcxGridChartDataGroup; AStrings: TStrings;
out AValues: TVariantArray);
property GridView: TcxGridChartView read GetGridView;
property SumOfValues[ASeriesIndex: Integer]: Variant read GetSumOfValues;
// all values
property Categories[AIndex: Integer]: Variant read GetCategory write SetCategory;
property CategoryCount: Integer read GetCategoryCount write SetCategoryCount;
property GroupValues[ADataGroupIndex, AIndex: Integer]: Variant read GetGroupValue write SetGroupValue;
property Values[ASeriesIndex, AIndex: Integer]: Variant read GetValue write SetValue;
// visible values
property VisibleCategories[AIndex: Integer]: Variant read GetVisibleCategory;
property VisibleCategoryCount: Integer read GetVisibleCategoryCount;
property VisibleValues[ASeriesIndex, AIndex: Integer]: Variant read GetVisibleValue;
property VisibleGroupValueCount[AVisibleDataGroupIndex: Integer]: Integer read GetVisibleGroupValueCount;
property VisibleGroupValues[AVisibleDataGroupIndex, AIndex: Integer]: Variant read GetVisibleGroupValue;
end;
{ view info }
// part
TcxCustomGridChartPartViewInfo = class(TcxCustomGridViewCellViewInfo)
private
function GetGridView: TcxGridChartView;
function GetGridViewInfo: TcxGridChartViewInfo;
protected
function GetAlignment: TcxGridChartPartAlignment; virtual; abstract;
function GetHeight: Integer; override;
function GetOrientation: TcxGridChartPartOrientation; virtual; abstract;
function GetPosition: TcxGridChartPartPosition; virtual; abstract;
function GetVisible: Boolean; override;
function GetWidth: Integer; override;
public
property Alignment: TcxGridChartPartAlignment read GetAlignment;
property GridView: TcxGridChartView read GetGridView;
property GridViewInfo: TcxGridChartViewInfo read GetGridViewInfo;
property Orientation: TcxGridChartPartOrientation read GetOrientation;
property Position: TcxGridChartPartPosition read GetPosition;
end;
// custom title
TcxCustomGridChartTitleViewInfo = class(TcxCustomGridChartPartViewInfo)
private
FTitle: TcxCustomGridChartTitle;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetAlignment: TcxGridChartPartAlignment; override;
function GetOrientation: TcxGridChartPartOrientation; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetPosition: TcxGridChartPartPosition; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
function HasBackground: Boolean; override;
public
constructor Create(AGridViewInfo: TcxCustomGridViewInfo; ATitle: TcxCustomGridChartTitle); reintroduce; virtual;
property Title: TcxCustomGridChartTitle read FTitle;
end;
// custom legend
TcxGridChartLegendItemViewInfoClass = class of TcxGridChartLegendItemViewInfo;
TcxGridChartLegendItemViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FContainer: TcxGridChartLegendViewInfo;
FIndex: Integer;
function GetDiagram: TcxGridChartDiagram;
function GetGridView: TcxGridChartView;
function GetLegendKeyHeight: Integer;
function GetLegendKeyWidth: Integer;
function GetSeries: TcxGridChartSeries;
protected
function CalculateContentBounds: TRect; override;
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function CalculateLegendKeyHeight: Integer; virtual;
function CalculateLegendKeySize: Integer; virtual;
function CalculateLegendKeyWidth: Integer; virtual;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
procedure DoCalculateParams; override;
function GetDesignSelectionBounds: TRect; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetIsDesignSelected: Boolean; override;
function GetLegendKeyBorders: TcxBorders; virtual;
function GetLegendKeyBounds: TRect; virtual;
function GetLegendKeyOffset: Integer; virtual;
function GetPainterClass: TcxCustomGridCellPainterClass; 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;
property LegendKeyHeight: Integer read GetLegendKeyHeight;
property LegendKeyOffset: Integer read GetLegendKeyOffset;
property LegendKeyWidth: Integer read GetLegendKeyWidth;
public
LegendKeyParams: TcxViewParams;
constructor Create(AContainer: TcxGridChartLegendViewInfo; AIndex: Integer); reintroduce; virtual;
function GetAreaBoundsForPainting: TRect; override;
function MouseDown(AHitTest: TcxCustomGridHitTest; AButton: TMouseButton;
AShift: TShiftState): Boolean; override;
property Container: TcxGridChartLegendViewInfo read FContainer;
property Diagram: TcxGridChartDiagram read GetDiagram;
property GridView: TcxGridChartView read GetGridView;
property Index: Integer read FIndex;
property LegendKeyBorders: TcxBorders read GetLegendKeyBorders;
property LegendKeyBounds: TRect read GetLegendKeyBounds;
property Series: TcxGridChartSeries read GetSeries;
end;
TcxGridChartLegendKind = (lkSeries, lkCategories);
TcxGridChartLegendViewInfoClass = class of TcxGridChartLegendViewInfo;
TcxGridChartLegendViewInfo = class(TcxCustomGridChartPartViewInfo)
private
FDiagram: TcxGridChartDiagram;
FItemLegendKeyWidth: Integer;
FItemLegendKeyHeight: Integer;
FItemOffset: Integer;
FItems: TList;
function GetCount: Integer;
function GetItem(Index: Integer): TcxGridChartLegendItemViewInfo;
function GetItemLegendKeyWidth: Integer;
function GetItemLegendKeyHeight: Integer;
function GetItemOffset: Integer;
protected
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function CalculateItemLegendKeyWidth: Integer; virtual;
function CalculateItemLegendKeyHeight: Integer; virtual;
function CalculateItemOffset: Integer; virtual;
function CustomDraw(ACanvas: TcxCanvas): Boolean; override;
function GetAlignment: TcxGridChartPartAlignment; override;
function GetBorderColor(AIndex: TcxBorder): TColor; override;
function GetBorders: TcxBorders; override;
function GetBorderWidth(AIndex: TcxBorder): Integer; override;
function GetHitTestClass: TcxCustomGridHitTestClass; override;
function GetOrientation: TcxGridChartPartOrientation; override;
function GetPainterClass: TcxCustomGridCellPainterClass; override;
function GetPosition: TcxGridChartPartPosition; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
function HasCustomDraw: Boolean; override;
function AddItem: TcxGridChartLegendItemViewInfo;
procedure CalculateItems; virtual;
function GetItemCaption(AIndex: Integer): string; virtual;
function GetItemClass: TcxGridChartLegendItemViewInfoClass; virtual;
function GetItemCount: Integer; virtual;
function GetItemObjectIndex(AIndex: Integer): Integer; virtual; abstract;
function GetItemSeriesIndex(AIndex: Integer): Integer; virtual;
function GetItemValueIndex(AIndex: Integer): Integer; virtual;
function GetKind: TcxGridChartLegendKind; virtual; abstract;
//function ItemLegendKeyBorderIsValueBorder: Boolean; virtual;
property ItemLegendKeyWidth: Integer read GetItemLegendKeyWidth;
property ItemLegendKeyHeight: Integer read GetItemLegendKeyHeight;
property ItemOffset: Integer read GetItemOffset;
public
constructor Create(AGridViewInfo: TcxCustomGridViewInfo; ADiagram: TcxGridChartDiagram); reintroduce; virtual;
destructor Destroy; override;
procedure Calculate(ALeftBound, ATopBound: Integer; AWidth: Integer = -1;
AHeight: Integer = -1); override;
function GetHitTest(const P: TPoint): TcxCustomGridHitTest; override;
procedure GetItemLegendKeyParams(AIndex: Integer; out AParams: TcxViewParams); virtual;
property Diagram: TcxGridChartDiagram read FDiagram;
property Count: Integer read GetCount;
property Items[Index: Integer]: TcxGridChartLegendItemViewInfo read GetItem;
property Kind: TcxGridChartLegendKind read GetKind;
end;
// custom diagram
TcxGridChartDiagramValueCaptionViewInfoClass = class of TcxGridChartDiagramValueCaptionViewInfo;
TcxGridChartDiagramValueCaptionViewInfo = class(TcxCustomGridViewCellViewInfo)
private
FValueViewInfo: TcxGridChartDiagramValueViewInfo;
protected
function GetAlignmentHorz: TAlignment; override;
function GetAlignmentVert: TcxAlignmentVert; override;
function CalculateHeight: Integer; override;
function CalculateWidth: Integer; override;
function GetText: string; override;
function GetTextAreaBounds: TRect; override;
function GetTextAttributes(AForPainting: Boolean): Integer; override;
procedure GetViewParams(var AParams: TcxViewParams); override;
function GetVisible: Boolean; override;
function HasBackground: Boolean; override;
function HasVisualCompensation: Boolean; virtual;
public
constructor Create(AValueViewInfo: TcxGridChartDiagramValueViewInfo); reintroduce; virtual;
property ValueViewInfo: TcxGridChartDiagramValueViewInfo read FValueViewInfo;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?