mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 10:59:11 +02:00
TAChart: Add TChartListbox demo by Werner Pamler
git-svn-id: trunk@31631 -
This commit is contained in:
parent
2d6a277be3
commit
c7b8797cf5
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -2517,6 +2517,10 @@ components/tachart/demo/line/Main.lfm svneol=native#text/plain
|
|||||||
components/tachart/demo/line/Main.pas svneol=native#text/pascal
|
components/tachart/demo/line/Main.pas svneol=native#text/pascal
|
||||||
components/tachart/demo/line/linedemo.lpi svneol=native#text/plain
|
components/tachart/demo/line/linedemo.lpi svneol=native#text/plain
|
||||||
components/tachart/demo/line/linedemo.lpr svneol=native#text/pascal
|
components/tachart/demo/line/linedemo.lpr svneol=native#text/pascal
|
||||||
|
components/tachart/demo/listbox/Unit1.lfm svneol=native#text/plain
|
||||||
|
components/tachart/demo/listbox/Unit1.pas svneol=native#text/pascal
|
||||||
|
components/tachart/demo/listbox/listboxdemo.lpi svneol=native#text/plain
|
||||||
|
components/tachart/demo/listbox/listboxdemo.lpr svneol=native#text/pascal
|
||||||
components/tachart/demo/multi/Main.lfm svneol=native#text/plain
|
components/tachart/demo/multi/Main.lfm svneol=native#text/plain
|
||||||
components/tachart/demo/multi/Main.pas svneol=native#text/pascal
|
components/tachart/demo/multi/Main.pas svneol=native#text/pascal
|
||||||
components/tachart/demo/multi/multidemo.lpi svneol=native#text/plain
|
components/tachart/demo/multi/multidemo.lpi svneol=native#text/plain
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -181,6 +181,9 @@ components/tachart/demo/legend/lib
|
|||||||
components/tachart/demo/line/*.exe
|
components/tachart/demo/line/*.exe
|
||||||
components/tachart/demo/line/*.lps
|
components/tachart/demo/line/*.lps
|
||||||
components/tachart/demo/line/lib
|
components/tachart/demo/line/lib
|
||||||
|
components/tachart/demo/listbox/*.exe
|
||||||
|
components/tachart/demo/listbox/*.lps
|
||||||
|
components/tachart/demo/listbox/lib
|
||||||
components/tachart/demo/multi/*.exe
|
components/tachart/demo/multi/*.exe
|
||||||
components/tachart/demo/multi/*.lps
|
components/tachart/demo/multi/*.lps
|
||||||
components/tachart/demo/multi/lib
|
components/tachart/demo/multi/lib
|
||||||
|
292
components/tachart/demo/listbox/Unit1.lfm
Normal file
292
components/tachart/demo/listbox/Unit1.lfm
Normal file
@ -0,0 +1,292 @@
|
|||||||
|
object Form1: TForm1
|
||||||
|
Left = 265
|
||||||
|
Height = 419
|
||||||
|
Top = 182
|
||||||
|
Width = 892
|
||||||
|
Caption = 'Form1'
|
||||||
|
ClientHeight = 419
|
||||||
|
ClientWidth = 892
|
||||||
|
OnCreate = FormCreate
|
||||||
|
LCLVersion = '0.9.31'
|
||||||
|
object Chart: TChart
|
||||||
|
Left = 296
|
||||||
|
Height = 419
|
||||||
|
Top = 0
|
||||||
|
Width = 453
|
||||||
|
AxisList = <
|
||||||
|
item
|
||||||
|
Minors = <
|
||||||
|
item
|
||||||
|
Grid.Color = clSilver
|
||||||
|
end>
|
||||||
|
Title.LabelFont.Orientation = 900
|
||||||
|
Title.LabelFont.Style = [fsBold]
|
||||||
|
Title.Visible = True
|
||||||
|
Title.Caption = 'y axis'
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Alignment = calBottom
|
||||||
|
Minors = <
|
||||||
|
item
|
||||||
|
Grid.Color = clSilver
|
||||||
|
end>
|
||||||
|
Title.LabelFont.Style = [fsBold]
|
||||||
|
Title.Visible = True
|
||||||
|
Title.Caption = 'x axis'
|
||||||
|
end>
|
||||||
|
BackColor = clWhite
|
||||||
|
Extent.XMax = 10
|
||||||
|
Extent.UseXMin = True
|
||||||
|
Extent.UseXMax = True
|
||||||
|
Foot.Brush.Color = clBtnFace
|
||||||
|
Foot.Font.Color = clBlue
|
||||||
|
Title.Brush.Color = clBtnFace
|
||||||
|
Title.Font.Color = clBlue
|
||||||
|
Title.Text.Strings = (
|
||||||
|
'TAChart'
|
||||||
|
)
|
||||||
|
Align = alClient
|
||||||
|
ParentColor = False
|
||||||
|
object SinSeries: TLineSeries
|
||||||
|
end
|
||||||
|
object CosSeries: TLineSeries
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ListboxPanel: TPanel
|
||||||
|
Left = 754
|
||||||
|
Height = 419
|
||||||
|
Top = 0
|
||||||
|
Width = 138
|
||||||
|
Align = alRight
|
||||||
|
BevelOuter = bvNone
|
||||||
|
ClientHeight = 419
|
||||||
|
ClientWidth = 138
|
||||||
|
TabOrder = 1
|
||||||
|
object CheckListBox1: TCheckListBox
|
||||||
|
Left = 0
|
||||||
|
Height = 83
|
||||||
|
Top = 336
|
||||||
|
Width = 138
|
||||||
|
Align = alBottom
|
||||||
|
Items.Strings = (
|
||||||
|
'Item1'
|
||||||
|
'Item2'
|
||||||
|
'Item3'
|
||||||
|
'Item4'
|
||||||
|
'Item5'
|
||||||
|
)
|
||||||
|
ItemHeight = 15
|
||||||
|
TabOrder = 0
|
||||||
|
Data = {
|
||||||
|
050000000000000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object ListBox1: TListBox
|
||||||
|
Left = 0
|
||||||
|
Height = 80
|
||||||
|
Top = 256
|
||||||
|
Width = 138
|
||||||
|
Align = alBottom
|
||||||
|
Items.Strings = (
|
||||||
|
'Item1'
|
||||||
|
'Item2'
|
||||||
|
'Item3'
|
||||||
|
'Item4'
|
||||||
|
'Item5'
|
||||||
|
'Item6'
|
||||||
|
)
|
||||||
|
ItemHeight = 13
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object Splitter: TSplitter
|
||||||
|
Left = 749
|
||||||
|
Height = 419
|
||||||
|
Top = 0
|
||||||
|
Width = 5
|
||||||
|
Align = alRight
|
||||||
|
ResizeAnchor = akRight
|
||||||
|
end
|
||||||
|
object Panel1: TPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 419
|
||||||
|
Top = 0
|
||||||
|
Width = 296
|
||||||
|
Align = alLeft
|
||||||
|
BevelInner = bvRaised
|
||||||
|
BevelOuter = bvLowered
|
||||||
|
ClientHeight = 419
|
||||||
|
ClientWidth = 296
|
||||||
|
TabOrder = 3
|
||||||
|
object BtnAddSeries: TButton
|
||||||
|
Left = 8
|
||||||
|
Height = 25
|
||||||
|
Top = 12
|
||||||
|
Width = 81
|
||||||
|
Caption = 'Add series'
|
||||||
|
OnClick = BtnAddSeriesClick
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object BtnToggleCOS: TButton
|
||||||
|
Left = 104
|
||||||
|
Height = 25
|
||||||
|
Top = 40
|
||||||
|
Width = 81
|
||||||
|
Caption = 'Toggle cos(x)'
|
||||||
|
OnClick = BtnToggleCOSClick
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object BtnToggleChart: TButton
|
||||||
|
Left = 9
|
||||||
|
Height = 25
|
||||||
|
Top = 232
|
||||||
|
Width = 159
|
||||||
|
Caption = 'Toggle ChartListbox.Chart'
|
||||||
|
OnClick = BtnToggleChartClick
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object BtnToggleSIN: TButton
|
||||||
|
Left = 104
|
||||||
|
Height = 25
|
||||||
|
Top = 12
|
||||||
|
Width = 82
|
||||||
|
Caption = 'Toggle sin(x)'
|
||||||
|
OnClick = BtnToggleSINClick
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
object CbShowCheckboxes: TCheckBox
|
||||||
|
Left = 9
|
||||||
|
Height = 17
|
||||||
|
Top = 280
|
||||||
|
Width = 105
|
||||||
|
Caption = 'Show checkboxes'
|
||||||
|
Checked = True
|
||||||
|
OnChange = CbShowCheckboxesChange
|
||||||
|
State = cbChecked
|
||||||
|
TabOrder = 4
|
||||||
|
end
|
||||||
|
object CbShowSeriesIcon: TCheckBox
|
||||||
|
Left = 152
|
||||||
|
Height = 17
|
||||||
|
Top = 280
|
||||||
|
Width = 104
|
||||||
|
Caption = 'Show series icons'
|
||||||
|
Checked = True
|
||||||
|
OnChange = CbShowSeriesIconChange
|
||||||
|
State = cbChecked
|
||||||
|
TabOrder = 5
|
||||||
|
end
|
||||||
|
object CbCheckStyle: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Height = 17
|
||||||
|
Top = 312
|
||||||
|
Width = 84
|
||||||
|
Caption = 'Radiobuttons'
|
||||||
|
OnChange = CbCheckStyleChange
|
||||||
|
TabOrder = 6
|
||||||
|
end
|
||||||
|
object CbMultiSelect: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Height = 17
|
||||||
|
Top = 344
|
||||||
|
Width = 71
|
||||||
|
Caption = 'MultiSelect'
|
||||||
|
OnChange = CbMultiSelectChange
|
||||||
|
TabOrder = 7
|
||||||
|
end
|
||||||
|
object Memo: TMemo
|
||||||
|
Left = 9
|
||||||
|
Height = 106
|
||||||
|
Top = 104
|
||||||
|
Width = 275
|
||||||
|
ScrollBars = ssAutoVertical
|
||||||
|
TabOrder = 8
|
||||||
|
end
|
||||||
|
object Label1: TLabel
|
||||||
|
Left = 9
|
||||||
|
Height = 14
|
||||||
|
Top = 88
|
||||||
|
Width = 57
|
||||||
|
Caption = 'Click viewer'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object EdColumns: TSpinEdit
|
||||||
|
Left = 208
|
||||||
|
Height = 21
|
||||||
|
Top = 340
|
||||||
|
Width = 50
|
||||||
|
OnChange = EdColumnsChange
|
||||||
|
TabOrder = 9
|
||||||
|
end
|
||||||
|
object Label2: TLabel
|
||||||
|
Left = 152
|
||||||
|
Height = 14
|
||||||
|
Top = 345
|
||||||
|
Width = 45
|
||||||
|
Caption = 'Columns:'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object BtnDeleteSeries: TButton
|
||||||
|
Left = 9
|
||||||
|
Height = 25
|
||||||
|
Top = 40
|
||||||
|
Width = 81
|
||||||
|
Caption = 'Delete series'
|
||||||
|
OnClick = BtnDeleteSeriesClick
|
||||||
|
TabOrder = 10
|
||||||
|
end
|
||||||
|
object CbKeepSeriesOut: TCheckBox
|
||||||
|
Left = 9
|
||||||
|
Height = 17
|
||||||
|
Top = 376
|
||||||
|
Width = 227
|
||||||
|
Caption = 'Keep sin and cos series out of ChartListBox'
|
||||||
|
OnChange = CbKeepSeriesOutChange
|
||||||
|
TabOrder = 11
|
||||||
|
end
|
||||||
|
object Bevel1: TBevel
|
||||||
|
Left = 9
|
||||||
|
Height = 4
|
||||||
|
Top = 76
|
||||||
|
Width = 278
|
||||||
|
Shape = bsBottomLine
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object RandomChartSource: TRandomChartSource
|
||||||
|
PointsNumber = 10
|
||||||
|
RandSeed = 1603921857
|
||||||
|
XMax = 10
|
||||||
|
XMin = 0
|
||||||
|
YMax = 1
|
||||||
|
YMin = -1
|
||||||
|
left = 496
|
||||||
|
top = 80
|
||||||
|
end
|
||||||
|
object ColorDialog: TColorDialog
|
||||||
|
Color = clBlack
|
||||||
|
CustomColors.Strings = (
|
||||||
|
'ColorA=000000'
|
||||||
|
'ColorB=000080'
|
||||||
|
'ColorC=008000'
|
||||||
|
'ColorD=008080'
|
||||||
|
'ColorE=800000'
|
||||||
|
'ColorF=800080'
|
||||||
|
'ColorG=808000'
|
||||||
|
'ColorH=808080'
|
||||||
|
'ColorI=C0C0C0'
|
||||||
|
'ColorJ=0000FF'
|
||||||
|
'ColorK=00FF00'
|
||||||
|
'ColorL=00FFFF'
|
||||||
|
'ColorM=FF0000'
|
||||||
|
'ColorN=FF00FF'
|
||||||
|
'ColorO=FFFF00'
|
||||||
|
'ColorP=FFFFFF'
|
||||||
|
'ColorQ=C0DCC0'
|
||||||
|
'ColorR=F0CAA6'
|
||||||
|
'ColorS=F0FBFF'
|
||||||
|
'ColorT=A4A0A0'
|
||||||
|
)
|
||||||
|
left = 496
|
||||||
|
top = 128
|
||||||
|
end
|
||||||
|
end
|
255
components/tachart/demo/listbox/Unit1.pas
Normal file
255
components/tachart/demo/listbox/Unit1.pas
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
unit Unit1;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, TASources, TASeries, TAGraph, CheckLst, Spin, ComCtrls,
|
||||||
|
ExtCtrls, StdCtrls, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||||
|
TAChartListbox;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
TForm1 = class(TForm)
|
||||||
|
Bevel1 : TBevel;
|
||||||
|
BtnAddSeries:TButton;
|
||||||
|
BtnDeleteSeries:TButton;
|
||||||
|
BtnToggleCOS:TButton;
|
||||||
|
BtnToggleChart:TButton;
|
||||||
|
BtnToggleSIN:TButton;
|
||||||
|
Chart:TChart;
|
||||||
|
CbShowCheckboxes:TCheckBox;
|
||||||
|
CbShowSeriesIcon:TCheckBox;
|
||||||
|
CbCheckStyle:TCheckBox;
|
||||||
|
CbMultiSelect : TCheckBox;
|
||||||
|
CbKeepSeriesOut:TCheckBox;
|
||||||
|
CheckListBox1:TCheckListBox;
|
||||||
|
ColorDialog:TColorDialog;
|
||||||
|
Label1 : TLabel;
|
||||||
|
Label2:TLabel;
|
||||||
|
ListBox1:TListBox;
|
||||||
|
Memo : TMemo;
|
||||||
|
SinSeries:TLineSeries;
|
||||||
|
CosSeries:TLineSeries;
|
||||||
|
ListboxPanel:TPanel;
|
||||||
|
Panel1:TPanel;
|
||||||
|
RandomChartSource:TRandomChartSource;
|
||||||
|
EdColumns:TSpinEdit;
|
||||||
|
Splitter:TSplitter;
|
||||||
|
procedure BtnAddSeriesClick(Sender:TObject);
|
||||||
|
procedure BtnDeleteSeriesClick(Sender:TObject);
|
||||||
|
procedure BtnToggleCOSClick(Sender:TObject);
|
||||||
|
procedure BtnToggleChartClick(Sender:TObject);
|
||||||
|
procedure BtnToggleSINClick(Sender:TObject);
|
||||||
|
procedure CbMultiSelectChange(Sender : TObject);
|
||||||
|
procedure CbShowCheckboxesChange(Sender:TObject);
|
||||||
|
procedure CbShowSeriesIconChange(Sender:TObject);
|
||||||
|
procedure CbCheckStyleChange(Sender:TObject);
|
||||||
|
procedure CbKeepSeriesOutChange(Sender:TObject);
|
||||||
|
procedure EdColumnsChange(Sender:TObject);
|
||||||
|
procedure FormCreate(Sender:TObject);
|
||||||
|
procedure ChartListboxCheckboxClick(Sender:TObject; Index:integer);
|
||||||
|
procedure ChartListboxClick(Sender:TObject);
|
||||||
|
procedure ChartListboxItemClick(Sender:TObject; Index:integer);
|
||||||
|
procedure ChartListboxSeriesIconClick(Sender:TObject; Index:integer);
|
||||||
|
procedure ChartListboxPopulate(Sender:TObject);
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
ChartListbox : TChartListbox;
|
||||||
|
procedure CreateData;
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Form1: TForm1;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
uses
|
||||||
|
TATypes;
|
||||||
|
|
||||||
|
{ TForm1 }
|
||||||
|
|
||||||
|
procedure TForm1.CreateData;
|
||||||
|
const
|
||||||
|
n = 100;
|
||||||
|
var
|
||||||
|
i : integer;
|
||||||
|
mn, mx : double;
|
||||||
|
x : double;
|
||||||
|
begin
|
||||||
|
mx := 10.0;
|
||||||
|
mn := 0.0;
|
||||||
|
for i:=0 to n-1 do begin
|
||||||
|
x := mn + (mx - mn) / (n - 1) * i;
|
||||||
|
SinSeries.AddXY(x, sin(x));
|
||||||
|
CosSeries.AddXY(x, cos(x));
|
||||||
|
end;
|
||||||
|
SinSeries.Title := 'sin(x)';
|
||||||
|
SinSeries.SeriesColor := clRed;
|
||||||
|
CosSeries.Title := 'cos(x)';
|
||||||
|
CosSeries.SeriesColor := clBlue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ChartListboxCheckboxClick(Sender:TObject; Index:integer);
|
||||||
|
begin
|
||||||
|
Memo.Lines.Add(Format('Checkbox of item #%d (series "%s") clicked.',
|
||||||
|
[Index, ChartListbox.Series[Index].Title]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ChartListboxSeriesIconClick(Sender:TObject; Index:integer);
|
||||||
|
begin
|
||||||
|
Memo.Lines.Add(Format('Icon of item #%d (series "%s") clicked.',
|
||||||
|
[Index, ChartListbox.Series[Index].Title]));
|
||||||
|
|
||||||
|
if ChartListbox.Series[Index] is TLineSeries then
|
||||||
|
with ColorDialog do begin
|
||||||
|
Color := TLineSeries(ChartListbox.Series[Index]).SeriesColor;
|
||||||
|
if Execute then
|
||||||
|
TLineSeries(ChartListbox.Series[Index]).SeriesColor := Color;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ChartListboxItemClick(Sender:TObject; Index:integer);
|
||||||
|
begin
|
||||||
|
Memo.Lines.Add(Format('Title of item #%d (series "%s") clicked.',
|
||||||
|
[Index, ChartListbox.Series[Index].Title]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ChartListboxClick(Sender:TObject);
|
||||||
|
begin
|
||||||
|
Memo.Lines.Add(Format('Item #%d (series "%s") clicked.',
|
||||||
|
[ChartListbox.ItemIndex, ChartListbox.Series[ChartListbox.ItemIndex].Title]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ChartListboxPopulate(Sender:TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox.RemoveSeries(SinSeries);
|
||||||
|
ChartListbox.RemoveSeries(CosSeries);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.FormCreate(Sender:TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox := TChartListbox.Create(self);
|
||||||
|
ChartListbox.Parent := ListboxPanel;
|
||||||
|
ChartListbox.Align := alClient;
|
||||||
|
ChartListbox.Chart := Chart;
|
||||||
|
ChartListbox.OnSeriesIconClick := @ChartListboxSeriesIconClick;
|
||||||
|
ChartListbox.OnCheckboxClick := @ChartListboxCheckboxClick;
|
||||||
|
ChartListbox.OnItemClick := @ChartListboxItemClick;
|
||||||
|
ChartListbox.OnClick := @ChartListboxClick;
|
||||||
|
|
||||||
|
Memo.Lines.Clear;
|
||||||
|
|
||||||
|
CreateData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.BtnToggleSINClick(Sender:TObject);
|
||||||
|
begin
|
||||||
|
SinSeries.Active := not SinSeries.Active;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.CbMultiSelectChange(Sender : TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox.MultiSelect := CbMultiSelect.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.CbShowCheckboxesChange(Sender:TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox.ShowCheckboxes := CbShowCheckboxes.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.CbShowSeriesIconChange(Sender:TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox.ShowSeriesIcons := CbShowSeriesIcon.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.CbCheckStyleChange(Sender:TObject);
|
||||||
|
begin
|
||||||
|
if CbCheckStyle.Checked then
|
||||||
|
Chartlistbox.CheckStyle := cbsRadioButton
|
||||||
|
else
|
||||||
|
ChartListbox.CheckStyle := cbsCheckbox;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.CbKeepSeriesOutChange(Sender:TObject);
|
||||||
|
begin
|
||||||
|
if CbKeepSeriesOut.Checked then begin
|
||||||
|
ChartListbox.OnPopulate := @ChartListboxPopulate;
|
||||||
|
ChartListbox.RemoveSeries(SinSeries);
|
||||||
|
ChartListbox.RemoveSeries(CosSeries);
|
||||||
|
end else
|
||||||
|
ChartListbox.OnPopulate := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.EdColumnsChange(Sender:TObject);
|
||||||
|
begin
|
||||||
|
ChartListbox.Columns := EdColumns.Value;
|
||||||
|
CheckListbox1.Columns := EdColumns.Value;
|
||||||
|
Listbox1.Columns := EdColumns.Value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.BtnAddSeriesClick(Sender:TObject);
|
||||||
|
var
|
||||||
|
ser : TLineSeries;
|
||||||
|
cs : TRandomChartSource;
|
||||||
|
begin
|
||||||
|
cs := TRandomChartSource.Create(Chart);
|
||||||
|
cs.RandSeed := random(65000);
|
||||||
|
cs.PointsNumber := random(10) + 3;
|
||||||
|
cs.XMax := 10;
|
||||||
|
cs.XMin := 0;
|
||||||
|
cs.YMax := 1;
|
||||||
|
cs.YMin := -1;
|
||||||
|
cs.YCount := 1;
|
||||||
|
ser := TLineSeries.Create(Chart);
|
||||||
|
ser.Source := cs;
|
||||||
|
ser.SeriesColor := rgbToColor(random(255), random(256), random(256));
|
||||||
|
ser.Title := Format('Series %d', [Chart.SeriesCount+1]);
|
||||||
|
ser.ShowPoints := odd(Chart.SeriesCount);
|
||||||
|
ser.Pointer.Brush.Color := ser.SeriesColor;
|
||||||
|
ser.Pointer.Style := TSeriesPointerStyle(random(ord(High(TSeriesPointerStyle))));
|
||||||
|
Chart.AddSeries(ser);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.BtnDeleteSeriesClick(Sender:TObject);
|
||||||
|
var
|
||||||
|
ser : TBasicChartSeries;
|
||||||
|
begin
|
||||||
|
if (ChartListbox.ItemIndex = -1) then begin
|
||||||
|
MessageDlg('Select the series to be deleted from the listbox first.',
|
||||||
|
mtInformation, [mbOK], 0);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
if (ChartListbox.ItemIndex < 2) and (not CbKeepSeriesOut.Checked) then
|
||||||
|
MessageDlg('This demo is designed to have at least the sine and cosine '+
|
||||||
|
'series in the chart. Deleting is not allowed.', mtInformation, [mbOK], 0)
|
||||||
|
else begin
|
||||||
|
ser := ChartListbox.Series[ChartListbox.ItemIndex];
|
||||||
|
Chart.DeleteSeries(ser);
|
||||||
|
FreeAndNil(ser);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.BtnToggleCOSClick(Sender:TObject);
|
||||||
|
begin
|
||||||
|
CosSeries.Active := not CosSeries.Active;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.BtnToggleChartClick(Sender:TObject);
|
||||||
|
begin
|
||||||
|
if ChartListbox.Chart = nil then
|
||||||
|
ChartListbox.Chart := Chart
|
||||||
|
else
|
||||||
|
ChartListbox.Chart := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
384
components/tachart/demo/listbox/listboxdemo.lpi
Normal file
384
components/tachart/demo/listbox/listboxdemo.lpi
Normal file
@ -0,0 +1,384 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="9"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<ActiveWindowIndexAtStart Value="0"/>
|
||||||
|
</General>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N LFM="False"/>
|
||||||
|
</i18n>
|
||||||
|
<VersionInfo>
|
||||||
|
<StringTable ProductVersion=""/>
|
||||||
|
</VersionInfo>
|
||||||
|
<BuildModes Count="1" Active="Default">
|
||||||
|
<Item1 Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
|
<ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="TAChartLazarusPkg"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="36">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="listboxdemo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="listboxdemo"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<CursorPos X="37" Y="9"/>
|
||||||
|
<UsageCount Value="85"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="Unit1.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="Form1"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="Unit1"/>
|
||||||
|
<IsVisibleTab Value="True"/>
|
||||||
|
<EditorIndex Value="0"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="80"/>
|
||||||
|
<CursorPos X="1" Y="106"/>
|
||||||
|
<UsageCount Value="85"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="TAGraph.pas"/>
|
||||||
|
<UnitName Value="TAGraph"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="913"/>
|
||||||
|
<CursorPos X="31" Y="925"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="..\..\tasources.pas"/>
|
||||||
|
<UnitName Value="TASources"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="78"/>
|
||||||
|
<CursorPos X="3" Y="86"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="..\..\tacustomsource.pas"/>
|
||||||
|
<UnitName Value="TACustomSource"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="40"/>
|
||||||
|
<CursorPos X="23" Y="60"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="..\..\..\..\fpc\2.4.4\source\rtl\objpas\math.pp"/>
|
||||||
|
<UnitName Value="math"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="154"/>
|
||||||
|
<CursorPos X="10" Y="168"/>
|
||||||
|
<UsageCount Value="8"/>
|
||||||
|
</Unit5>
|
||||||
|
<Unit6>
|
||||||
|
<Filename Value="C:\lazarus_\components\tachart\tacustomseries.pas"/>
|
||||||
|
<UnitName Value="TACustomSeries"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="163"/>
|
||||||
|
<CursorPos X="37" Y="37"/>
|
||||||
|
<UsageCount Value="4"/>
|
||||||
|
</Unit6>
|
||||||
|
<Unit7>
|
||||||
|
<Filename Value="C:\lazarus_\components\tachart\tafuncseries.pas"/>
|
||||||
|
<UnitName Value="TAFuncSeries"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="87"/>
|
||||||
|
<CursorPos X="17" Y="87"/>
|
||||||
|
<UsageCount Value="4"/>
|
||||||
|
</Unit7>
|
||||||
|
<Unit8>
|
||||||
|
<Filename Value="..\..\tachartutils.pas"/>
|
||||||
|
<UnitName Value="TAChartUtils"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="140"/>
|
||||||
|
<CursorPos X="15" Y="154"/>
|
||||||
|
<UsageCount Value="29"/>
|
||||||
|
</Unit8>
|
||||||
|
<Unit9>
|
||||||
|
<Filename Value="..\..\tanavigation.pas"/>
|
||||||
|
<UnitName Value="TANavigation"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="111"/>
|
||||||
|
<CursorPos X="15" Y="116"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit9>
|
||||||
|
<Unit10>
|
||||||
|
<Filename Value="TAChartListbox.pas"/>
|
||||||
|
<UnitName Value="TAChartListbox"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="396"/>
|
||||||
|
<CursorPos X="12" Y="402"/>
|
||||||
|
<UsageCount Value="85"/>
|
||||||
|
</Unit10>
|
||||||
|
<Unit11>
|
||||||
|
<Filename Value="..\..\..\..\lcl\stdctrls.pp"/>
|
||||||
|
<UnitName Value="StdCtrls"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="475"/>
|
||||||
|
<CursorPos X="31" Y="483"/>
|
||||||
|
<UsageCount Value="40"/>
|
||||||
|
</Unit11>
|
||||||
|
<Unit12>
|
||||||
|
<Filename Value="..\..\..\..\lcl\checklst.pas"/>
|
||||||
|
<UnitName Value="CheckLst"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="60"/>
|
||||||
|
<CursorPos X="67" Y="60"/>
|
||||||
|
<UsageCount Value="32"/>
|
||||||
|
</Unit12>
|
||||||
|
<Unit13>
|
||||||
|
<Filename Value="..\..\talegend.pas"/>
|
||||||
|
<UnitName Value="TALegend"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="102"/>
|
||||||
|
<CursorPos X="3" Y="116"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit13>
|
||||||
|
<Unit14>
|
||||||
|
<Filename Value="..\..\taseries.pas"/>
|
||||||
|
<UnitName Value="TASeries"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="507"/>
|
||||||
|
<CursorPos X="38" Y="512"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit14>
|
||||||
|
<Unit15>
|
||||||
|
<Filename Value="..\..\tacustomseries.pas"/>
|
||||||
|
<UnitName Value="TACustomSeries"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="307"/>
|
||||||
|
<CursorPos X="1" Y="321"/>
|
||||||
|
<UsageCount Value="28"/>
|
||||||
|
</Unit15>
|
||||||
|
<Unit16>
|
||||||
|
<Filename Value="..\..\..\..\lcl\include\customlistbox.inc"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="281"/>
|
||||||
|
<CursorPos X="1" Y="299"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
</Unit16>
|
||||||
|
<Unit17>
|
||||||
|
<Filename Value="..\..\tadrawutils.pas"/>
|
||||||
|
<UnitName Value="TADrawUtils"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="54"/>
|
||||||
|
<CursorPos X="3" Y="68"/>
|
||||||
|
<UsageCount Value="26"/>
|
||||||
|
</Unit17>
|
||||||
|
<Unit18>
|
||||||
|
<Filename Value="..\..\tadrawercanvas.pas"/>
|
||||||
|
<UnitName Value="TADrawerCanvas"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="241"/>
|
||||||
|
<CursorPos X="1" Y="257"/>
|
||||||
|
<UsageCount Value="8"/>
|
||||||
|
</Unit18>
|
||||||
|
<Unit19>
|
||||||
|
<Filename Value="..\..\..\..\lcl\widgetset\wschecklst.pp"/>
|
||||||
|
<UnitName Value="WSCheckLst"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="35"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<UsageCount Value="5"/>
|
||||||
|
</Unit19>
|
||||||
|
<Unit20>
|
||||||
|
<Filename Value="..\..\..\..\lcl\extctrls.pp"/>
|
||||||
|
<UnitName Value="ExtCtrls"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<UsageCount Value="16"/>
|
||||||
|
</Unit20>
|
||||||
|
<Unit21>
|
||||||
|
<Filename Value="..\..\..\..\lcl\comctrls.pp"/>
|
||||||
|
<UnitName Value="ComCtrls"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="2977"/>
|
||||||
|
<CursorPos X="21" Y="2994"/>
|
||||||
|
<UsageCount Value="17"/>
|
||||||
|
</Unit21>
|
||||||
|
<Unit22>
|
||||||
|
<Filename Value="..\..\..\..\lcl\include\headercontrol.inc"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="366"/>
|
||||||
|
<CursorPos X="13" Y="394"/>
|
||||||
|
<UsageCount Value="5"/>
|
||||||
|
</Unit22>
|
||||||
|
<Unit23>
|
||||||
|
<Filename Value="..\..\..\..\lcl\themes.pas"/>
|
||||||
|
<UnitName Value="Themes"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="491"/>
|
||||||
|
<CursorPos X="10" Y="505"/>
|
||||||
|
<UsageCount Value="16"/>
|
||||||
|
</Unit23>
|
||||||
|
<Unit24>
|
||||||
|
<Filename Value="..\..\..\..\lcl\include\winapih.inc"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="78"/>
|
||||||
|
<CursorPos X="10" Y="152"/>
|
||||||
|
<UsageCount Value="5"/>
|
||||||
|
</Unit24>
|
||||||
|
<Unit25>
|
||||||
|
<Filename Value="..\..\..\..\lcl\lcltype.pp"/>
|
||||||
|
<UnitName Value="LCLType"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="264"/>
|
||||||
|
<CursorPos X="3" Y="278"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit25>
|
||||||
|
<Unit26>
|
||||||
|
<Filename Value="..\..\tagraph.pas"/>
|
||||||
|
<UnitName Value="TAGraph"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1336"/>
|
||||||
|
<CursorPos X="21" Y="1360"/>
|
||||||
|
<UsageCount Value="17"/>
|
||||||
|
</Unit26>
|
||||||
|
<Unit27>
|
||||||
|
<Filename Value="..\..\tatypes.pas"/>
|
||||||
|
<UnitName Value="TATypes"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="220"/>
|
||||||
|
<CursorPos X="3" Y="234"/>
|
||||||
|
<UsageCount Value="16"/>
|
||||||
|
</Unit27>
|
||||||
|
<Unit28>
|
||||||
|
<Filename Value="..\..\..\..\lcl\controls.pp"/>
|
||||||
|
<UnitName Value="Controls"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1159"/>
|
||||||
|
<CursorPos X="1" Y="1184"/>
|
||||||
|
<UsageCount Value="15"/>
|
||||||
|
</Unit28>
|
||||||
|
<Unit29>
|
||||||
|
<Filename Value="..\..\tageometry.pas"/>
|
||||||
|
<UnitName Value="TAGeometry"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="27"/>
|
||||||
|
<CursorPos X="10" Y="41"/>
|
||||||
|
<UsageCount Value="14"/>
|
||||||
|
</Unit29>
|
||||||
|
<Unit30>
|
||||||
|
<Filename Value="D:\lazarus\components\tachart\tachartutils.pas"/>
|
||||||
|
<UnitName Value="TAChartUtils"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="582"/>
|
||||||
|
<CursorPos X="1" Y="613"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit30>
|
||||||
|
<Unit31>
|
||||||
|
<Filename Value="D:\lazarus\components\tachart\tagraph.pas"/>
|
||||||
|
<UnitName Value="TAGraph"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1341"/>
|
||||||
|
<CursorPos X="1" Y="1361"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit31>
|
||||||
|
<Unit32>
|
||||||
|
<Filename Value="D:\lazarus\components\tachart\tacustomseries.pas"/>
|
||||||
|
<UnitName Value="TACustomSeries"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="395"/>
|
||||||
|
<CursorPos X="1" Y="415"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit32>
|
||||||
|
<Unit33>
|
||||||
|
<Filename Value="D:\lazarus\lcl\include\buttoncontrol.inc"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="31"/>
|
||||||
|
<CursorPos X="63" Y="48"/>
|
||||||
|
<UsageCount Value="8"/>
|
||||||
|
</Unit33>
|
||||||
|
<Unit34>
|
||||||
|
<Filename Value="..\..\tachartlazaruspkg.pas"/>
|
||||||
|
<UnitName Value="TAChartLazarusPkg"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<CursorPos X="14" Y="6"/>
|
||||||
|
<UsageCount Value="12"/>
|
||||||
|
</Unit34>
|
||||||
|
<Unit35>
|
||||||
|
<Filename Value="..\TAChartListbox.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="TAChartListbox"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
</Unit35>
|
||||||
|
</Units>
|
||||||
|
<JumpHistory Count="3" HistoryIndex="2">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="Unit1.pas"/>
|
||||||
|
<Caret Line="225" Column="10" TopLine="212"/>
|
||||||
|
</Position1>
|
||||||
|
<Position2>
|
||||||
|
<Filename Value="Unit1.pas"/>
|
||||||
|
<Caret Line="208" Column="23" TopLine="185"/>
|
||||||
|
</Position2>
|
||||||
|
<Position3>
|
||||||
|
<Filename Value="Unit1.pas"/>
|
||||||
|
<Caret Line="255" Column="1" TopLine="185"/>
|
||||||
|
</Position3>
|
||||||
|
</JumpHistory>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="10"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<OtherUnitFiles Value=".."/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<StripSymbols Value="True"/>
|
||||||
|
</Debugging>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CompilerMessages>
|
||||||
|
<UseMsgFile Value="True"/>
|
||||||
|
</CompilerMessages>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
20
components/tachart/demo/listbox/listboxdemo.lpr
Normal file
20
components/tachart/demo/listbox/listboxdemo.lpr
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
program listboxdemo;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, tachartlazaruspkg, Unit1, TAChartListbox;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
RequireDerivedFormResource := True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TForm1, Form1);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user