Blog Options
Archive
<< March 2026 >>-
Monday 23
- Simplify Mapping Across Platforms with TMS FNC Maps -
Wednesday 18
- The Next Evolution of Charting in Delphi: Look & Feel -
Monday 16
- Better Delphi Code from AI Agents with TMS Skills -
Friday 13
- TMS Training Days 2026 - Community Evening -
Wednesday 11
- The Next Evolution of Charting in Delphi: Data Import & Export -
Monday 9
- Meet Gjalt Vanhouwaert at TMS Training Days 2026 -
Friday 6
- Meet Pieter Scheldeman at TMS Training Days 2026 -
Thursday 5
- Enabling TLS 1.3 in TMS MQTT and TMS FNC Products -
Wednesday 4
- Meet Antonio Zapater at TMS Training Days 2026 -
Tuesday 3
- The Next Evolution of Charting in Delphi: Getting Started -
Monday 2
- Meet José Leon Serna at TMS Training Days 2026
- Meet Dennis Roehner at TMS Training Days 2026
- Meet Bradley Velghe at TMS Training Days 2026
- Unlock PDF Interactivity in Delphi with TTMSFNCPDFLib Form Fields
Authors
- Bernard Roussely (3)
- Wagner Landgraf (98)
- Dennis Röhner (1)
- Roman Yankovsky (2)
- Bart Holvoet (42)
- Aaron Decramer (82)
- Pieter Scheldeman (134)
- Nancy Lescouhier (32)
- Adrian Gallero (34)
- Bruno Fierens (450)
- Marcos Douglas B. Santos (5)
- Bernard (4)
- Bradley Velghe (36)
- Andrew Simard (86)
- Holger Flick (15)
- Gjalt Vanhouwaert (44)
- Tunde Keller (37)
- Masiha Zemarai (117)
Blog
All Blog Posts | Next Post | Previous Post
TMS FMX Chart update with new virtual mode available
Thursday, October 22, 2015
Where in earlier versions, the method for adding values to a chart was via multiple calls to TMSFMXChart.Series[x].AddSinglePoint(), the new virtual mode offers a faster solution that is more flexible and typically consumes less memory. This can of course make a welcome difference when creating applications for mobile devices.To start using the new TMS FMX Chart virtual mode, two events need to be implemented:
TMSFMXChart.OnGetNumberOfPoints()
and
TMSFMXChart.OnGetPoint()
In the first event, OnGetNumberOfPoints(), that is triggered for each series in the chart, the number of desired data points can be returned via the ANumberOfPoints parameter.
In this sample event handler, the number of points is set to 10000 for each series in the chart:
procedure TForm1.TMSFMXChart1GetNumberOfPoints(Sender: TObject; ASerie: TTMSFMXChartSerie; var ANumberOfPoints: Integer); begin ANumberOfPoints := 10000; end;
var
data_arr_1, data_arr_2: array of double;
begin
SetLength(data_arr_1,10000);
SetLength(data_arr_2,10000);
for i := 0 to Length(data_arr) - 1 do
begin
data_arr_1[i] := random(100) / 33;
data_arr_2[i] := random(200) / 25;
end;
end;procedure TForm1.TMSFMXChart1GetPoint(Sender: TObject;
ASerie: TTMSFMXChartSerie; AIndex: Integer;
var APoint: TTMSFMXChartPointVirtual);
begin
case ASerie.Index of
0: if AIndex < Length(data_arr_1) then
APoint.YValue := data_arr_1[AIndex]
1: if AIndex < Length(data_arr_2) then
APoint.YValue := data_arr_2[AIndex]
end;
end;
TMSFMXChart1.Series[0].AutoYRange := arEnabled; TMSFMXChart1.Series[0].MaxX := 100; TMSFMXChart1.Series[1].AutoYRange := arEnabled; TMSFMXChart1.Series[1].MaxX := 100;
Bruno Fierens
This blog post has received 1 comment.
All Blog Posts | Next Post | Previous Post
Gromov Vsevolod