mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-07 17:52:35 +02:00
120 lines
2.7 KiB
ObjectPascal
120 lines
2.7 KiB
ObjectPascal
unit Main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, ExtCtrls, StdCtrls, SysUtils, FileUtil, Forms, Controls, Graphics,
|
|
Dialogs, TAGraph, TASeries, TASources, TATools;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
btnAddSeries: TButton;
|
|
btnRefresh: TButton;
|
|
cb3D: TCheckBox;
|
|
cbLineType: TComboBox;
|
|
cbRotated: TCheckBox;
|
|
cbSorted: TCheckBox;
|
|
Chart1: TChart;
|
|
Chart1ConstantLine1: TConstantLine;
|
|
Chart1LineSeries1: TLineSeries;
|
|
ChartToolset1: TChartToolset;
|
|
ChartToolset1DataPointDragTool1: TDataPointDragTool;
|
|
ChartToolset1PanDragTool1: TPanDragTool;
|
|
ChartToolset1ZoomDragTool1: TZoomDragTool;
|
|
edTime: TEdit;
|
|
Panel1: TPanel;
|
|
RandomChartSource1: TRandomChartSource;
|
|
procedure btnAddSeriesClick(Sender: TObject);
|
|
procedure btnRefreshClick(Sender: TObject);
|
|
procedure cb3DChange(Sender: TObject);
|
|
procedure cbLineTypeChange(Sender: TObject);
|
|
procedure cbRotatedChange(Sender: TObject);
|
|
procedure cbSortedChange(Sender: TObject);
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
uses
|
|
LCLIntf;
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.btnAddSeriesClick(Sender: TObject);
|
|
var
|
|
s: TLineSeries;
|
|
i, j: Integer;
|
|
begin
|
|
for i := 1 to 10 do begin
|
|
s := TLineSeries.Create(Chart1);
|
|
s.SeriesColor := clRed;
|
|
for j := 1 to 10000 do
|
|
s.AddXY(j, Random * 5 + Chart1.SeriesCount * 10);
|
|
Chart1.AddSeries(s);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.btnRefreshClick(Sender: TObject);
|
|
var
|
|
t: TDateTime;
|
|
begin
|
|
t := Now;
|
|
Chart1.Refresh;
|
|
edTime.Text := FormatDateTime('s.zzz', Now - t) + ' s';
|
|
end;
|
|
|
|
procedure TForm1.cb3DChange(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i := 0 to Chart1.SeriesCount - 1 do
|
|
if Chart1.Series[i] is TLineSeries then
|
|
with Chart1.Series[i] as TLineSeries do
|
|
Depth := 15 - Depth;
|
|
end;
|
|
|
|
procedure TForm1.cbLineTypeChange(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i := 0 to Chart1.SeriesCount - 1 do
|
|
if Chart1.Series[i] is TLineSeries then
|
|
with Chart1.Series[i] as TLineSeries do
|
|
LineType := TLineType(cbLineType.ItemIndex);
|
|
end;
|
|
|
|
procedure TForm1.cbRotatedChange(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i := 0 to Chart1.SeriesCount - 1 do
|
|
if Chart1.Series[i] is TLineSeries then
|
|
with Chart1.Series[i] as TLineSeries do begin
|
|
AxisIndexY := Ord(cbRotated.Checked);
|
|
AxisIndexX := 1 - AxisIndexY;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.cbSortedChange(Sender: TObject);
|
|
var
|
|
i: Integer;
|
|
begin
|
|
for i := 0 to Chart1.SeriesCount - 1 do
|
|
if Chart1.Series[i] is TLineSeries then
|
|
with Chart1.Series[i] as TLineSeries do
|
|
if Source is TListChartSource then
|
|
ListSource.Sorted := cbSorted.Checked;
|
|
end;
|
|
|
|
end.
|
|
|