Back to Devexpress

TdxChartSimpleSeriesDoughnutView Class

vcl-dxchartsimplediagram-e087b08c.md

latest9.3 KB
Original Source

TdxChartSimpleSeriesDoughnutView Class

Stores Doughnut View settings.

Declaration

delphi
TdxChartSimpleSeriesDoughnutView = class(
    TdxChartSimpleSeriesCustomPieView
)

Remarks

The Doughnut View displays series values as slices of a doughnut (radial angles reflect shares of all series values in relation to their total). The Doughnut View is identical to the Pie View but has a hole in its center.

The TdxChartSimpleSeriesDoughnutView class implements the Doughnut View. To select the Doughnut View, assign 'Doughnut' to the ViewType property of a simple series.

Main API Members

The list below outlines key members of the TdxChartSimpleSeriesDoughnutView class that allow you to customize the appearance of a simple series that uses the Doughnut View.

HoleRadiusSpecifies the hole radius of a Doughnut series.SweepDirectionArranges series values clockwise or counterclockwise.StartAngleRotates a Doughnut series clockwise or counterclockwise.TotalLabelProvides access to total label settings.ExplodedValueOptionsAllows you to display doughnut slices separately from each other.AppearanceProvides access to general series appearance settings.ValueLabelsProvides access to series value label settings.OnCanExplodeValueAllows you to display specific doughnut slices separately from each other based on certain conditions.AssignCopies compatible settings between simple series Views.

Code Example: Create an Unbound Doughnut Series

The following code example creates a simple series with the Doughnut View and populates it with data points in unbound mode:

delphi
uses cxDataStorage; // Declares the TcxStringValueType class
// ...
var
  ASimpleDiagram: TdxChartSimpleDiagram;
  ASimpleSeries: TdxChartSimpleSeries;
  ADoughnutView: TdxChartSimpleSeriesDoughnutView;
  ADataBinding: TdxChartSimpleSeriesUnboundDataBinding;
begin
  dxChartControl1.BeginUpdate; // Initiates the following batch change
  try
    ASimpleDiagram := dxChartControl1.AddDiagram<TdxChartSimpleDiagram>('Country statistics');
    ASimpleDiagram.Title.Appearance.FontOptions.Size := 16;
    ASimpleDiagram.Legend.AlignmentHorz := TdxChartLegendAlignment.Near; // Moves the legend pane
    ASimpleSeries := ASimpleDiagram.AddSeries('Area'); // Creates a simple series
    // Displays series data point arguments on the diagram legend pane
    ASimpleSeries.ShowInLegend := TdxChartSeriesShowInLegend.Diagram;
    ASimpleSeries.ViewClass := TdxChartSimpleSeriesDoughnutView; // Selects the Doughnut series View
    // Selects the unbound data access mode
    ASimpleSeries.DataBindingClass := TdxChartSimpleSeriesUnboundDataBinding;
    ADataBinding := ASimpleSeries.DataBinding as TdxChartSimpleSeriesUnboundDataBinding;
    ADataBinding.ArgumentField.ValueTypeClass := TcxStringValueType; // Selects the string data type
    ASimpleSeries.Title.Text := 'Area'; // Specifies the series title
    // Populates the unbound simple series with data points
    ASimpleSeries.Points.Add('Russia', 17.0752);
    ASimpleSeries.Points.Add('Canada', 9.98467);
    ASimpleSeries.Points.Add('USA', 9.63142);
    ASimpleSeries.Points.Add('China', 9.59696);
    ASimpleSeries.Points.Add('Brazil', 8.511965);
    ASimpleSeries.Points.Add('Australia', 7.68685);
    ASimpleSeries.Points.Add('India', 3.28759);
    ASimpleSeries.Points.Add('Others', 81.2);
    // Customizes appearance of the Doughnut series View
    ADoughnutView := ASimpleSeries.View as TdxChartSimpleSeriesDoughnutView;
    ADoughnutView.HoleRadius := 50;
    ADoughnutView.ExplodedValueOptions.Mode := TdxChartExplodedValueMode.All;
  finally
    dxChartControl1.EndUpdate; // Calls EndUpdate regardless of the batch operation's success
  end;
cpp
#include "cxDataStorage.hpp" // Declares the TcxStringValueType class
// ...
  TdxChartSimpleDiagram *ASimpleDiagram;
  TdxChartSimpleSeries *ASimpleSeries;
  TdxChartSimpleSeriesDoughnutView *ADoughnutView;
  TdxChartSimpleSeriesUnboundDataBinding *ADataBinding;
  // ...
  dxChartControl1->BeginUpdate(); // Initiates the following batch change
  try
  {
    ASimpleDiagram = new TdxChartSimpleDiagram(dxChartControl1->Owner);
    ASimpleDiagram->SetParentComponent(dxChartControl1);
    ASimpleDiagram->Title->Text = "Country Statistics";
    ASimpleDiagram->Title->Appearance->FontOptions->Size = 16;
    ASimpleDiagram->Legend->AlignmentHorz = TdxChartLegendAlignment::Near; // Moves the legend pane
    ASimpleSeries = ASimpleDiagram->AddSeries("Area"); // Creates a simple series
    // Displays series data point arguments on the diagram legend pane
    ASimpleSeries->ShowInLegend = TdxChartSeriesShowInLegend::Diagram;
    // Selects the Doughnut series View
    ASimpleSeries->ViewClass = __classid(TdxChartSimpleSeriesDoughnutView);
    // Selects the unbound data access mode
    ASimpleSeries->DataBindingClass = __classid(TdxChartSimpleSeriesUnboundDataBinding);
    ADataBinding = dynamic_cast<TdxChartSimpleSeriesUnboundDataBinding*>(ASimpleSeries->DataBinding);
    ADataBinding->ArgumentField->ValueTypeClass = TcxStringValueType; // Selects the string data type
    ASimpleSeries->Title->Text = "Area"; // Specifies the series title
    // Populates the unbound simple series with data points
    ASimpleSeries->Points->Add("Russia", 17.0752);
    ASimpleSeries->Points->Add("Canada", 9.98467);
    ASimpleSeries->Points->Add("USA", 9.63142);
    ASimpleSeries->Points->Add("China", 9.59696);
    ASimpleSeries->Points->Add("Brazil", 8.511965);
    ASimpleSeries->Points->Add("Australia", 7.68685);
    ASimpleSeries->Points->Add("India", 3.28759);
    ASimpleSeries->Points->Add("Others", 81.2);
    // Customizes appearance of the Doughnut series View
    ADoughnutView = dynamic_cast<TdxChartSimpleSeriesDoughnutView*>(ASimpleSeries->View);
    ADoughnutView->HoleRadius = 50;
    ADoughnutView->ExplodedValueOptions->Mode = TdxChartExplodedValueMode::All;
  }
  __finally
  {
    dxChartControl1->EndUpdate(); // Calls EndUpdate regardless of the batch operation's success
  }
  // ...

To see the Doughnut series View in action, run the Chart Control demo in the VCL Demo Center installed with compiled DevExpress VCL demos. Select the Doughnut item in the left sidebar.

Download: Compiled VCL Demos

Tip

Compiled DevExpress demos ship with source code installed in the Public Documents folder (%Public%) for all users ( default ). You can find all project and source code files for the Chart control in the following folder:

%Public%\Documents\DevExpress VCL Demos\MegaDemos\Product Demos\ExpressChart

Direct TdxChartSimpleSeriesDoughnutView Class References

The View property of a simple series references the TdxChartSimpleSeriesDoughnutView class as a TdxChartSimpleSeriesCustomView object if the ViewType property is set to 'Doughnut'. You need to cast the returned object to the TdxChartSimpleSeriesDoughnutView class to access all public API members.

Inheritance

TObject TPersistent TcxOwnedPersistent TcxOwnedInterfacedPersistent TdxChartVisualElementPersistent TdxChartSeriesCustomView TdxChartSimpleSeriesCustomView TdxChartSimpleSeriesCustomPieView TdxChartSimpleSeriesDoughnutView

See Also

TdxChartSimpleSeriesPieView Class

TdxChartSimpleSeriesDoughnutView Members

dxChartSimpleDiagram Unit