Skip to main content
All docs
V25.1
  • 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.
    OnGetSeriesPointDrawParameters | OnGetValueLabelDrawParameters
    Allow you to customize individual series points and 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

    Code Example: Create and Populate Two Unbound Bar Series

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

    uses cxDataStorage; // 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