mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-07 04:12:40 +02:00
93 lines
2.2 KiB
ObjectPascal
93 lines
2.2 KiB
ObjectPascal
unit Main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, TAGraph, TAChartImageList, TASources,
|
|
TAFuncSeries, Forms, Controls, Graphics, Dialogs, ComCtrls;
|
|
|
|
type
|
|
|
|
{ TfrmMain }
|
|
|
|
TfrmMain = class(TForm)
|
|
Chart1: TChart;
|
|
Chart1FuncSeries1: TFuncSeries;
|
|
Chart1FuncSeries2: TFuncSeries;
|
|
ChartImageList1: TChartImageList;
|
|
ListView1: TListView;
|
|
RandomChartSource1: TRandomChartSource;
|
|
StatusBar1: TStatusBar;
|
|
ToolBar1: TToolBar;
|
|
tbAdd: TToolButton;
|
|
tbQuit: TToolButton;
|
|
tbSep1: TToolButton;
|
|
procedure Chart1FuncSeries1Calculate(const AX: Double; out AY: Double);
|
|
procedure Chart1FuncSeries2Calculate(const AX: Double; out AY: Double);
|
|
procedure ChartImageList1Populate(Sender: TObject);
|
|
procedure tbAddClick(Sender: TObject);
|
|
procedure tbQuitClick(Sender: TObject);
|
|
end;
|
|
|
|
var
|
|
frmMain: TfrmMain;
|
|
|
|
implementation
|
|
|
|
uses
|
|
LCLIntf, TATypes, TASeries;
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TfrmMain }
|
|
|
|
procedure TfrmMain.Chart1FuncSeries1Calculate(const AX: Double; out AY: Double);
|
|
begin
|
|
AY := Sin(AX);
|
|
end;
|
|
|
|
procedure TfrmMain.Chart1FuncSeries2Calculate(const AX: Double; out AY: Double);
|
|
begin
|
|
AY := Cos(AX);
|
|
end;
|
|
|
|
procedure TfrmMain.ChartImageList1Populate(Sender: TObject);
|
|
begin
|
|
with ChartImageList1 do
|
|
StatusBar1.SimpleText := Format(
|
|
'Now %d images in image list. ' +
|
|
'Among them %d series images starting at index %d',
|
|
[Count, SeriesCount, FirstSeriesIndex]);
|
|
end;
|
|
|
|
procedure TfrmMain.tbAddClick(Sender: TObject);
|
|
var
|
|
series: TLineSeries;
|
|
sty: Integer;
|
|
begin
|
|
RandomChartSource1.RandSeed := Random(MaxInt);
|
|
series := TLineSeries.Create(Self);
|
|
series.SeriesColor := RGB(Random(256), Random(256), Random(256));
|
|
series.Pointer.Brush.Color := series.SeriesColor;
|
|
sty := Random(Ord(High(TSeriesPointerStyle)) + 5);
|
|
series.ShowPoints := sty <= Ord(High(TSeriesPointerStyle));
|
|
if series.ShowPoints then
|
|
series.Pointer.Style := TSeriesPointerStyle(sty);
|
|
series.ListSource.CopyFrom(RandomChartSource1);
|
|
Chart1.AddSeries(series);
|
|
with Listview1.Items.Add do begin
|
|
Caption := Format('run item %d', [ListView1.Items.Count]);
|
|
ImageIndex := ChartImageList1.Count - 1;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmMain.tbQuitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
end.
|
|
|