Skip to main content

TdxChartCustomDiagram Class

The base class for all diagram classes.

Declaration

TdxChartCustomDiagram = class(
    TcxLockableComponent,
    IdxChartVisualElement,
    IdxChartCloneComponent,
    IdxChartDiagram
)

Remarks

A diagram is a pane designed to display and manage series in the Chart control. The TdxChartCustomDiagram class implements appearance and behavior settings common to all diagram classes.

VCL Chart Control: Series in XY Diagrams

Main API Members

The list below outlines key members of the TdxChartCustomDiagram class that allow you to configure diagrams and manage series in them.

Title
Specifies the diagram title, and its position and appearance.
SeriesCount | VisibleSeriesCount
Return the total number of series and the number of visible series in the diagram.
Series | VisibleSeries
Provide access to visible and hidden series by their indexes.
Appearance
Provides access to diagram appearance settings.
Index
Specifies the diagram’s index in the Chart control.
Visible
Specifies if the Chart control displays the diagram and its visible series.
Legend
Provides access to the diagram’s legend pane settings.
BeginUpdate | EndUpdate | CancelUpdate
Allow you to avoid excessive redraw operations during batch data and appearance setting changes.
DeleteAllSeries
Deletes all series in the diagram.
OnGetValueLabelDrawParameters
Allows you to customize series value labels.
Assign
Copies compatible settings between diagrams.

Direct TdxChartCustomDiagram Class References and Terminal Descendants

A Chart control’s Diagrams and VisibleDiagrams properties reference created diagrams as TdxChartCustomDiagram objects. Cast them to the following descendants to access all diagram type-specific properties and methods:

TdxChartXYDiagram

A diagram designed to display series using the axis of arguments (X-axis) and the axis of values (Y-axis). An XY diagram can plot Area, Bar, and Line series.

VCL Chart Control: An XY Diagram Example with Area, Bar, and Line Series

TdxChartSimpleDiagram

A diagram intended to plot Pie and Doughnut series.

VCL Chart Control: A Simple Diagram Example with Pie and Doughnut Series

Example

The following code example creates an XY diagram with two Bar chart series and populates them with data in unbound mode:

uses cxDataStorage; // This unit declares the TcxStringValueType class
// ...
var
  AXYDiagram: TdxChartXYDiagram;
  AXYSeries: TdxChartXYSeries;
  ADataBinding: TdxChartXYSeriesUnboundDataBinding;
begin
  dxChartControl1.BeginUpdate;  // Initiates the following batch change
  try
    AXYDiagram := dxChartControl1.AddDiagram<TdxChartXYDiagram>('DevAV Sales by Region');
    AXYDiagram.Title.Appearance.FontOptions.Size := 20;
    AXYDiagram.Axes.AxisY.Title.Text := 'Millions of Dollars';
    AXYSeries := AXYDiagram.AddSeries('2018');  // Creates a new XY series with the caption "2018"
    AXYSeries.DataBindingClass := TdxChartXYSeriesUnboundDataBinding;  // Selects the unbound data access mode
    ADataBinding := AXYSeries.DataBinding as TdxChartXYSeriesUnboundDataBinding;
    ADataBinding.ArgumentField.ValueTypeClass := TcxStringValueType;  // Selects the string data type
    AXYSeries.ViewClass := TdxChartXYSeriesBarView;  // Selects the Bar series View
    AXYSeries.Points.Add('Asia', 4.2372);
    AXYSeries.Points.Add('Australia', 1.7871);
    AXYSeries.Points.Add('Europe', 3.0884);
    AXYSeries.Points.Add('North America', 3.4855);
    AXYSeries.Points.Add('South America', 1.6027);
    AXYSeries.View.ValueLabels.Visible := True;  // Displays value labels on bars
    AXYSeries := AXYDiagram.AddSeries('2019');  // Creates a new XY series with the caption "2019"
    AXYSeries.DataBindingClass := TdxChartXYSeriesUnboundDataBinding;  // Selects the unbound data access mode
    ADataBinding := AXYSeries.DataBinding as TdxChartXYSeriesUnboundDataBinding;
    ADataBinding.ArgumentField.ValueTypeClass := TcxStringValueType; // Selects the string data type
    AXYSeries.ViewClass := TdxChartXYSeriesBarView; // Selects the Bar series View
    AXYSeries.Points.Add('Asia', 4.7685);
    AXYSeries.Points.Add('Australia', 1.9576);
    AXYSeries.Points.Add('Europe', 3.3579);
    AXYSeries.Points.Add('North America', 3.7477);
    AXYSeries.Points.Add('South America', 1.8237);
    AXYSeries.View.ValueLabels.Visible := True;  // Displays value labels on bars
  finally
    dxChartControl1.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
  end;
end;

VCL Chart Control: An XY Diagram Example with two Bar Series

Diagram Deletion

To delete a diagram, release it directly in code (call the Free procedure in Delphi or use the delete keyword in C++Builder).

Inheritance

See Also