Skip to main content
All docs
V24.1

TdxChartCustomDiagram.OnGetSeriesPointDrawParameters Event

Allows you to customize the appearance of individual series points.

Declaration

property OnGetSeriesPointDrawParameters: TdxChartGetSeriesPointDrawParametersEvent read; write;

Remarks

You can handle OnGetSeriesPointDrawParameters and OnGetValueLabelDrawParameters events to customize individual series points and their value labels based on certain conditions.

Event Occurrence

The OnGetSeriesPointDrawParameters event occurs every time the diagram is about to determine how to draw a series point.

Event Parameters

The following parameters are available within an OnGetSeriesPointDrawParameters event handler:

Sender
This parameter provides access to the diagram that raised the appearance customization event.
AArgs
This parameter allows you to identify the processed series point and customize its appearance settings.

Refer to the TdxChartGetSeriesPointDrawParametersEvent procedural type description for detailed information on all available options.

Code Examples

Simple Area View

The following code example demonstrates a diagram’s OnGetSeriesPointDrawParameters event handler that changes the appearance settings of points with peak values in a Simple Area series:

procedure TMyForm.cdAreaGetSeriesPointDrawParameters(Sender: TdxChartCustomDiagram;
  AArgs: TdxChartGetSeriesPointDrawParametersEventArgs);
var
  AAreaDrawParameters: TdxChartAreaSeriesPointDrawParameters;
  ASeries: TdxChartCustomSeries;
  AIndex: Integer;
begin
  if AArgs.SeriesPoint.Series.Caption = 'DevAV South' then
  begin
    if AArgs.DrawParameters.ClassType <> TdxChartAreaSeriesPointDrawParameters then Exit;
    AAreaDrawParameters := AArgs.DrawParameters as TdxChartAreaSeriesPointDrawParameters;
    AIndex := AArgs.SeriesPoint.Index;
    ASeries := AArgs.SeriesPoint.Series;
    if ((AIndex = 0) and (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1])) or
       ((AIndex > 0) and (AIndex < ASeries.Points.Count - 1) and
       (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1]) and
        (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex - 1])) then
    begin
      AAreaDrawParameters.MarkerAppearance.FillOptions.Color := TdxAlphaColors.Red;
      AAreaDrawParameters.Appearance.BeginUpdate;
      AAreaDrawParameters.Appearance.FillOptions.Color := TdxAlphaColors.OrangeRed;
      AAreaDrawParameters.Appearance.FillOptions.Mode := TdxFillOptionsMode.Hatch;
      AAreaDrawParameters.Appearance.FillOptions.HatchStyle := TdxFillOptionsHatchStyle.ForwardDiagonal;
      AAreaDrawParameters.Appearance.FillOptions.Color2 := TdxAlphaColors.Teal;
      AAreaDrawParameters.Appearance.StrokeOptions.Color := TdxAlphaColors.Red;
      AAreaDrawParameters.Appearance.StrokeOptions.Style := TdxStrokeStyle.Solid;
      AAreaDrawParameters.Appearance.EndUpdate;
    end;
  end;
end;

VCL Chart Control: A Custom Series Point in a Simple Area View

Simple Bar View

The following code example demonstrates a diagram’s OnGetSeriesPointDrawParameters event handler that changes the appearance settings of all bars that display peak values in a Simple Bar series.

procedure TMyForm.cdBarGetSeriesPointDrawParameters(Sender: TdxChartCustomDiagram;
  AArgs: TdxChartGetSeriesPointDrawParametersEventArgs);
var
  ABarDrawParameters: TdxChartBarSeriesPointDrawParameters;
  ASeries: TdxChartCustomSeries;
  AIndex: Integer;
begin
  if AArgs.SeriesPoint.Series.Caption = '2020' then
  begin
    if AArgs.DrawParameters.ClassType <> TdxChartBarSeriesPointDrawParameters then Exit;
    ABarDrawParameters := AArgs.DrawParameters as TdxChartBarSeriesPointDrawParameters;
    AIndex := AArgs.SeriesPoint.Index;
    ASeries := AArgs.SeriesPoint.Series;
    if ((AIndex = 0) and (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1])) or
       ((AIndex > 0) and (AIndex < ASeries.Points.Count - 1) and
       (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1]) and
        (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex - 1])) then
    begin
      ABarDrawParameters.Appearance.BeginUpdate;
      ABarDrawParameters.Appearance.FillOptions.Color := TdxAlphaColors.OrangeRed;
      ABarDrawParameters.Appearance.FillOptions.Mode := TdxFillOptionsMode.Hatch;
      ABarDrawParameters.Appearance.FillOptions.HatchStyle := TdxFillOptionsHatchStyle.ForwardDiagonal;
      ABarDrawParameters.Appearance.FillOptions.Color2 := TdxAlphaColors.Teal;
      ABarDrawParameters.Appearance.StrokeOptions.Color := TdxAlphaColors.Red;
      ABarDrawParameters.Appearance.StrokeOptions.Style := TdxStrokeStyle.Solid;
      ABarDrawParameters.Appearance.EndUpdate;
    end;
  end;
end;

VCL Chart Control: Custom Series Points in a Simple Bar View

Simple Line View

The following code example demonstrates a diagram’s OnGetSeriesPointDrawParameters event handler that changes the appearance settings of points with peak values in a Simple Line series.

procedure TMyForm.cdLineGetSeriesPointDrawParameters(Sender: TdxChartCustomDiagram;
  AArgs: TdxChartGetSeriesPointDrawParametersEventArgs);
var
  ALineDrawParameters: TdxChartLineSeriesPointDrawParameters;
  ASeries: TdxChartCustomSeries;
  AIndex: Integer;
begin
  if AArgs.SeriesPoint.Series.Caption = 'Europe' then
  begin
    if AArgs.DrawParameters.ClassType <> TdxChartLineSeriesPointDrawParameters then Exit;
    ALineDrawParameters := AArgs.DrawParameters as TdxChartLineSeriesPointDrawParameters;
    AIndex := AArgs.SeriesPoint.Index;
    ASeries := AArgs.SeriesPoint.Series;
    if ((AIndex = 0) and (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1])) or
       ((AIndex > 0) and (AIndex < ASeries.Points.Count - 1) and
       (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex + 1]) and
        (ASeries.Points.Values[AIndex] > ASeries.Points.Values[AIndex - 1])) then
    begin
      ALineDrawParameters.MarkerAppearance.FillOptions.Color := TdxAlphaColors.Red;
      ALineDrawParameters.Appearance.BeginUpdate;
      ALineDrawParameters.Appearance.StrokeOptions.Color := TdxAlphaColors.Red;
      ALineDrawParameters.Appearance.StrokeOptions.Style := TdxStrokeStyle.Solid;
      ALineDrawParameters.Appearance.EndUpdate;
    end;
  end;
end;

VCL Chart Control: A Custom Series Point in a Simple Line View

Pie View

The following code example demonstrates a diagram’s OnGetSeriesPointDrawParameters event handler that changes the appearance settings of the pie slice that shows the English language’s share:

procedure TMyForm.cdAreaGetSeriesPointDrawParameters(Sender: TdxChartCustomDiagram;
  AArgs: TdxChartGetSeriesPointDrawParametersEventArgs);
var
  ASimpleDrawParameters: TdxChartSimpleSeriesPointDrawParameters;
begin
  if AArgs.SeriesPoint.Argument = 'English' then
  begin
    if AArgs.DrawParameters.ClassType <> TdxChartSimpleSeriesPointDrawParameters then Exit;
    ASimpleDrawParameters := AArgs.DrawParameters as TdxChartSimpleSeriesPointDrawParameters;
    ASimpleDrawParameters.FillOptions.BeginUpdate;
    ASimpleDrawParameters.FillOptions.Color := TdxAlphaColors.LightCyan;
    ASimpleDrawParameters.FillOptions.Color2 := TdxAlphaColors.LightBlue;
    ASimpleDrawParameters.FillOptions.Mode := TdxFillOptionsMode.Hatch;
    ASimpleDrawParameters.FillOptions.HatchStyle := TdxFillOptionsHatchStyle.ForwardDiagonal;
    ASimpleDrawParameters.FillOptions.EndUpdate;
  end;
end;

VCL Chart Control: A Custom Series Point in a Pie View

See Also