TdxChartCustomDiagram Class
The base class for all diagram classes.
Declaration
TdxChartCustomDiagram = class(
TcxLockableComponent,
IdxChartVisualElement,
IdxChartCloneComponent
)
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.
Main API Members
The list below outlines key members of the TdxChartCustomDiagram
class that allow you to configure diagrams and manage series in them.
- Copy compatible settings between diagrams (Assign).
- Specify the diagram title and customize its appearance (Title).
- Obtain the total number of series and the number of visible series in the diagram (SeriesCount and VisibleSeriesCount).
- Access visible and hidden series by their indexes (VisibleSeries and Series).
- Customize the diagram’s appearance settings (Appearance).
- Rearrange diagrams in a Chart control (Index).
- Hide or display the diagram (Visible).
- Customize the diagram’s legend settings (Legend).
- Avoid excessive redraw operations during batch data and appearance setting changes (BeginUpdate, CancelUpdate, and EndUpdate).
- Delete all series (DeleteAllSeries).
- Customize individual series value labels (OnGetValueLabelDrawParameters).
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.
- TdxChartSimpleDiagram
Example
The following code example creates an XY diagram with two Bar chart series and populates them with data in unbound mode:
var
AXYDiagram: TdxChartXYDiagram;
AXYSeries: TdxChartXYSeries;
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.DataBindingType := 'Unbound'; // Selects the unbound data access mode
TdxChartXYSeriesUnboundDataBinding(AXYSeries.DataBinding).ArgumentField.ValueType := 'string';
AXYSeries.ViewType := 'Bar'; // 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.DataBindingType := 'Unbound'; // Selects the unbound data access mode
TdxChartXYSeriesUnboundDataBinding(AXYSeries.DataBinding).ArgumentField.ValueType := 'string';
AXYSeries.ViewType := 'Bar'; // 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;
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).