Difference between revisions of "TAChart Runtime FAQ"
From Free Pascal wiki
Jump to navigationJump to search (→Series: Iterate through all series) |
(→Series: Delete a series at runtime) |
||
Line 43: | Line 43: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | === How to delete/hide a series at runtime? === | ||
+ | * If you don't need the series any more just destroy it: <code>series.Free</code>. | ||
+ | * If you want to keept it for other usage, for example to insert it into another chart, call <code>Chart.DeleteSeries(series)</code>. | ||
+ | * If you want to hide it, but keep it in the chart, set the property <code>Active</code> of the series to <code>false</code>. | ||
[[Category:TAChart]] | [[Category:TAChart]] |
Revision as of 11:28, 29 January 2018
This wiki is trying to answer frequently asked questions related to usage of TAChart at runtime
Series
How to add a series at runtime?
Just create the series, set its properties and call the chart method AddSeries
uses
TATypes, TASeries;
function AddLineSeries(AChart: TChart; ATitle: String): TChartSeries;
begin
Result := TLineSeries.Create(AChart.Owner);
with TLineSeries(Result) do
begin
// Series title for the legend
SeriesTitle := ATitle;
// Show data point markers (red fill color, black border)
ShowPoints := true;
Pointer.Brush.Color := clRed;
Pointer.Pen.Color := clBlack;
Pointer.Style := psCircle;
// Show red line segments connecting the data points
ShowLines := true;
LinePen.Style := psSolid;
SeriesColor := clRed;
end;
// Add new series to the chart
AChart.AddSeries(Result);
end;
How to iterate through the series of a chart?
The series are accessible via the array-like property Series
of the chart. Note that this returns only the most fundamental series type, TBasicChartSeries, and a type-cast may be necessage before being able to access the series properties.
The following example re-colors all line series in red:
uses
TASeries;
var
i: Integer;
begin
for i := 0 to AChart.SeriesCount-1 do
if AChart.Series[i] is TLineSeries then
TLineSeries(AChart.Series[i]).SeriesColor := clRed;
end;
How to delete/hide a series at runtime?
- If you don't need the series any more just destroy it:
series.Free
. - If you want to keept it for other usage, for example to insert it into another chart, call
Chart.DeleteSeries(series)
. - If you want to hide it, but keep it in the chart, set the property
Active
of the series tofalse
.