Skip to main content
All docs
V25.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