vcl-dxchartxyseriesbarview-b63c84aa.md
Stores series point draw settings in a Bar series View.
TdxChartBarSeriesPointDrawParameters = class(
TdxChartSeriesPointDrawParameters
)
The TdxChartBarSeriesPointDrawParameters class implements only the Appearance property that allows you to change fill and outline settings of individual bars in a Simple, Stacked, or Full-Stacked Bar series.
Handle an XY diagram‘s OnGetSeriesPointDrawParameters event to change the appearance of individual series points based on certain conditions.
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;
void __fastcall TMyForm::cdBarGetSeriesPointDrawParameters(TdxChartCustomDiagram *Sender
TdxChartGetSeriesPointDrawParametersEventArgs *AArgs)
{
TdxChartBarSeriesPointDrawParameters *ABarDrawParameters;
TdxChartCustomSeries *ASeries;
int AIndex;
// ...
if(AArgs->SeriesPoint->Series->Caption == "2020")
{
if(AArgs->DrawParameters->ClassType() != __classid(TdxChartBarSeriesPointDrawParameters)) { return; }
ABarDrawParameters = dynamic_cast<TdxChartBarSeriesPointDrawParameters*>(AArgs->DrawParameters);
AIndex = AArgs->SeriesPoint->Index;
ASeries = AArgs->SeriesPoint->Series;
if(((AIndex == 0) && (ASeries->Points->Values[AIndex] > ASeries->Points->Values[AIndex + 1])) ||
((AIndex > 0) && (AIndex < ASeries->Points->Count - 1) &&
(ASeries->Points->Values[AIndex] > ASeries->Points->Values[AIndex + 1]) &&
(ASeries->Points->Values[AIndex] > ASeries->Points->Values[AIndex - 1])))
{
ABarDrawParameters->MarkerAppearance->FillOptions->Color = TdxAlphaColors::Red;
ABarDrawParameters->Appearance->BeginUpdate();
ABarDrawParameters->Appearance->FillOptions->Color = TdxAlphaColors::OrangeRed;
ABarDrawParameters->Appearance->FillOptions->Color2 = TdxAlphaColors::Teal;
ABarDrawParameters->Appearance->FillOptions->Mode = TdxFillOptionsMode::Hatch;
ABarDrawParameters->Appearance->FillOptions->HatchStyle = TdxFillOptionsHatchStyle::ForwardDiagonal;
ABarDrawParameters->Appearance->StrokeOptions->Color = TdxAlphaColors::Red;
ABarDrawParameters->Appearance->StrokeOptions->Style = TdxStrokeStyle::Solid;
ABarDrawParameters->Appearance->EndUpdate();
}
}
}
The TdxChartGetSeriesPointDrawParametersEventArgs.DrawParameters property references the TdxChartBarSeriesPointDrawParameters class as a TdxChartSeriesPointDrawParameters object when a diagram’s OnGetSeriesPointDrawParameters event occurs for an XY series with the active Simple, Stacked, or Full-Stacked Bar View.
You need to cast a TdxChartSeriesPointDrawParameters object to the TdxChartBarSeriesPointDrawParameters class to access all draw settings of a series point in a Simple, Stacked, or Full-Stacked Bar series.
Tip
You can call a TdxChartSeriesPointDrawParameters object’s ClassType function within an OnGetSeriesPointDrawParameters event handler to identify the actual point draw series type.
TObject TdxChartSeriesPointDrawParameters TdxChartBarSeriesPointDrawParameters
See Also
TdxChartBarSeriesPointDrawParameters Class
TdxChartLineSeriesPointDrawParameters Class
TdxChartSimpleSeriesPointDrawParameters Class