mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-23 04:39:36 +02:00
TAChart: Extend listbox demo to show sorting.
git-svn-id: trunk@64434 -
This commit is contained in:
parent
b5423bfb19
commit
b269bcc49f
@ -68,6 +68,10 @@ object Form1: TForm1
|
||||
Title = 'cos(x)'
|
||||
LinePen.Color = clBlue
|
||||
end
|
||||
object ExpSeries: TLineSeries
|
||||
Title = 'exp(-x)'
|
||||
LinePen.Color = clGreen
|
||||
end
|
||||
end
|
||||
object ListboxPanel: TPanel
|
||||
Left = 754
|
||||
@ -80,8 +84,10 @@ object Form1: TForm1
|
||||
ClientWidth = 138
|
||||
TabOrder = 1
|
||||
object ChartListbox: TChartListbox
|
||||
AnchorSideBottom.Control = Panel2
|
||||
Left = 6
|
||||
Height = 407
|
||||
Height = 379
|
||||
Hint = 'Move up'
|
||||
Top = 6
|
||||
Width = 126
|
||||
Chart = Chart
|
||||
@ -90,11 +96,65 @@ object Form1: TForm1
|
||||
OnItemClick = ChartListboxItemClick
|
||||
OnPopulate = ChartListboxPopulate
|
||||
OnSeriesIconDblClick = ChartListboxSeriesIconDblClick
|
||||
Align = alClient
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 20
|
||||
TabOrder = 0
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 0
|
||||
Height = 22
|
||||
Top = 391
|
||||
Width = 138
|
||||
Align = alBottom
|
||||
AutoSize = True
|
||||
BorderSpacing.Bottom = 6
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 22
|
||||
ClientWidth = 138
|
||||
TabOrder = 1
|
||||
object BtnUp: TSpeedButton
|
||||
AnchorSideRight.Control = BtnDown
|
||||
AnchorSideBottom.Control = Panel2
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 31
|
||||
Height = 22
|
||||
Top = 0
|
||||
Width = 23
|
||||
Anchors = [akRight, akBottom]
|
||||
BorderSpacing.Right = 4
|
||||
Images = ImageList
|
||||
ImageIndex = 1
|
||||
OnClick = BtnUpClick
|
||||
end
|
||||
object BtnDown: TSpeedButton
|
||||
AnchorSideLeft.Control = Panel2
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = BtnUp
|
||||
Left = 58
|
||||
Height = 22
|
||||
Hint = 'Move down'
|
||||
Top = 0
|
||||
Width = 23
|
||||
Images = ImageList
|
||||
ImageIndex = 0
|
||||
OnClick = BtnDownClick
|
||||
end
|
||||
object BtnSort: TSpeedButton
|
||||
AnchorSideLeft.Control = BtnDown
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = BtnUp
|
||||
Left = 85
|
||||
Height = 22
|
||||
Hint = 'Sort by title'
|
||||
Top = 0
|
||||
Width = 23
|
||||
BorderSpacing.Left = 4
|
||||
Images = ImageList
|
||||
ImageIndex = 2
|
||||
OnClick = BtnSortClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object Splitter: TSplitter
|
||||
Left = 749
|
||||
@ -382,6 +442,106 @@ object Form1: TForm1
|
||||
'ColorT=A4A0A0'
|
||||
)
|
||||
Left = 496
|
||||
Top = 128
|
||||
Top = 152
|
||||
end
|
||||
object ImageList: TImageList
|
||||
Left = 808
|
||||
Top = 320
|
||||
Bitmap = {
|
||||
4C7A0300000010000000100000002D0200000000000078DA6360189C607FB5FB
|
||||
E77D55AEFF4118C426553F48DFFF33ABC018C41E69FA7757B8C0F583D8A4EADF
|
||||
52E208D70F6213AB6F7D81FDB375F976FF37153BFF86E907B14162203942FA97
|
||||
E7DA7AAF2974FAF679DF2CB8FD5FF6CFFDBFB6D0F9DBF23CFB4062DCB024D336
|
||||
634DB1FB971F4717FDFF796CF1FFB5251E5F16E7D8E493E2FFF9E9B6FDEB2B02
|
||||
3E6FA8F0FF3A3FC36E02A9E1070C30C659A936EB4118C4661805740D3F4AE28F
|
||||
92F44369FADD50E800C93F2548F9A704927F4072B4CEBFD42A3F467AF94B69FD
|
||||
3550E0749DD88D3375E24F5685323093AAF74CADB8F9E93AF19F207CAA4EDC19
|
||||
234F1FC8FE0FC238EDAE179F7CAA567C33089FAE9358842EFF7347E27F10C61A
|
||||
DE0D0C2C407B5F9CAE158B3B5527160D647F395226C28BACE6D386F0FF208C4D
|
||||
FFC906711FA09EFF40BF5F05D25740EC53B51209C86ADEACF0F90FC2D8C34D7C
|
||||
05101F3B5D2B9E06C5FB411859CDB3054EFF41185DEF8906213EA0DEAFC0F08B
|
||||
828901C3CF1728F6EF7483B8124CECC10C8BFF204C6EDCDE9CA0F71F84B1CB5E
|
||||
DDC2C070E53F2ABEBA0E59C5E50E95FF208C43BF0A03C3256308BED20CC47F81
|
||||
3A8290559C6D90FC0FC2F85D79CD02A8F72B502FBCBC3D5AC137FF5805FF7F64
|
||||
0C12C3E2066DA0DE7740DC8B2CBAB38481FB4021EBD50305ACFFC118C80689A1
|
||||
EABD2803D4F708885701532A13467990CDA0BD3787E10B0883D868F6F200F55D
|
||||
87E0AB5AC0305082E0CBB2C8AAF6E632248030F6B0430F7B30BE46EBFC0E00D9
|
||||
C2FB81
|
||||
}
|
||||
BitmapAdv = {
|
||||
4C69020000004C7A030000001800000018000000D50300000000000078DAED98
|
||||
5B481451188027BA3C280459BA5B419650041A3D1404B96A79290DED06EB4318
|
||||
D8CD5A2F99B66A29AE07BAA02FF9509482B1DECA34DD954D22235DB29BB94B17
|
||||
5BBB503D0419095D30772A8B3CFDFFECA4EBEECEECAAB3E1C31EF8F0E7CC3F9F
|
||||
33FF9C33FF28C3F8C65406659819C6A2CD439D8571D41E9CC36352F8D1474D8D
|
||||
949A9B6C40CCCDF9FC3EFF34F0DF2C8871F2737312F9AFE7453BF9B93989FC86
|
||||
DC0D4E7E6E6E0A7EFD91A87E5D7624450C47637E3BF961EEDF71CC9DA8BF314B
|
||||
11ABCB8D61BFDE3C3FE67560F0D605AACF8DFE7E35333C6132F7D09019B9AB25
|
||||
2796B51AAB9CDC6CD745AACB8D63AFA8147BA652FF7A55445673CE26F6C79DEA
|
||||
51F7CFBBB554A78E672F6744E549F18EAE51294A9BD509D6E17B75F4D7837AAA
|
||||
CF4FB4D6A9224BA5EC03DAB4F06A43E176ABA168075B7D505123759F69522A67
|
||||
56A5851B108C7D9DD737A6D3F0F6FAB4EDAF9D5ED95FB5871465BAFCC4217C37
|
||||
FCEEBE445B8F250DD5A6479449E1F6E6FBCD93F773438662EF64DC9EF5970AE8
|
||||
2FB16CE3E1C82D13F5B7E66CF830DA1FD52EFAA37AAC3F62EE74EBEFFFF3FBC4
|
||||
DBDF57BEEF5B9F7F3AFBBDF9F7B56FB81E3D2430DEAC91179834B26DDEF89F09
|
||||
78DF02B447231B30A731B305738DE90A7A3BA38003624FFC6612A840F73FE077
|
||||
2409E5FE31A69311A38A22187BE20767057ACD25415ADBEF90370BE50EB7EF27
|
||||
BFDAF751046377EE3E123A079C9F806FDD24602EFCFC020C3F3CBE78BEAB7CF6
|
||||
5A0AF9DE9642118CDDF91F6A8276F0D75CCBD58ABF07B32648E52A7F509F4C06
|
||||
F54A6A23D9ADDF542C6FE16A5E2C4F37115908D4FE00FF1CBA5DE57F6EDC4A00
|
||||
CA23EAEF3DB6641E787EDA3F5B7BCC64D14AC77306EAE2C940FD66CA01B1F8B5
|
||||
CBD2F8DA3C3295C82A47816BB7D54876DAF19C7E6D34E9D76EA436A245FD3D9A
|
||||
A02EAE36B0B7C6ADD762D93ADEFFBE49C98CFB767E57B99E009447D0FFA86861
|
||||
30384670BDE01A725EB3F257DCBD1159ACFDFCEBB36BC99B736B2882B1D47BFD
|
||||
45791879591E46118CDDAC7E25C3582A8579BEDDF18C67652B88A56C39453016
|
||||
F75BCE005498BE538E673C3EB1943C39194C118CDDDC2DECD1DE90F13CCBE3FD
|
||||
5FC11FEAF45C889C984BE414C17862D5ED8D02EF0F6018DC31A3EBAC2020F4C1
|
||||
F17956800A60C51C37EE55E0FD028CC03DEC763CDA95E79F7A47ED475D81C7C4
|
||||
DD4F9781F7035F977CA12C63F64C2D401DD08ABB5F2D805ABCE4DD956299ED6A
|
||||
C6BF2393E903284F1FCE8974163F70DFE7D74A1B5CE12C774FA833830905AF15
|
||||
C158C40D3DD07283BF6E13D4C8DFD355D091C5A4226EF6D63ABBB5FE1178EB82
|
||||
86C9EF74CB6A01A7447EEF8CBF26FFB5334C7A0300000020000000200000005F
|
||||
0400000000000078DAED996B4814411CC0B7A430A23E48DD9E2154147DF14BF5
|
||||
21A2EB32EB2C2CC2A82CFA5004D9434F8DD3F322E5AEA50F6112512151625DF6
|
||||
B0BABCF42A04CB175657E4258477D1038AA2300A7AD05E5656FF6674BB1BCFDD
|
||||
BB59F56E0B77E087EBBC7EB333B3B3337B0CA30635D0056098512D25CBBF3417
|
||||
A78118380DE789969FE3B8D1D8F3BBDD01E0E90F8EC369388FEA57FDAA5FF547
|
||||
C3DFB8C720E9C769D1F637EC5E2AE9C769D1F6D7172D91F4E3B468FBAF15A64A
|
||||
FA71DA70FA5D85A96FEA4C294072BDC8D003ED9706F8711C4E0BCD8FEB18ACFF
|
||||
72BE7EA9ABC0E0FFD8503ED017814F378F81CB6CF0D7E6A6A40FA50F6A7217AF
|
||||
AE3519FC9F1B8F53BBBF3457405D419ABF267FD1FAE118870BC6944D574C697E
|
||||
BEB532A2DBDF7A126A91FBA2519F359C73AF3A5B9FE744F57E6DB34BBABB6F9D
|
||||
06A779395F6D4C298AC6FC3F93B3B0D051B08CFF8A3CA1EE6FB7ABA006B9CFE6
|
||||
E8ADD1DC0356EDD0955D36A7F3DFEE9C0DB87FB8CF81D3B292AFCAD697C5621F
|
||||
6ADFAE2B775A56F13D77CF43CFBD6AA8DB93C1DB772CAC8CE53EB8326BC14557
|
||||
F11ADE55B2C67F729BEE5234F7BD62C191991957B155578FC1D7EAE9440D6A50
|
||||
C348587F945E7F957CFF28F9FE5572FFA1E4FE4BC9FDA792FB6FA5CF1F2EF392
|
||||
81E72F4B98F39745E4FC85EAF85FCF9FFFE2F95BE9EF0F4A7F7F51BFBFA97ED5
|
||||
AFFA95F02BFDFB9B1A465E68B7B1A508E8652F7B22A6E73C8E198DBCAF027E1B
|
||||
FBC96D4A1A172BBFC7A64D25DCBDDCB7B11BA8DADE6A049241F67DA5E07D8BE8
|
||||
EABBD6D4D394FDD5BC1348E4BA5BB869F1C8F7517096A3BF4785B6FCF4144F4A
|
||||
8C54FEC78DAD4022D77FDFAA5D1FE8732E7151BB55A30BFC6FD5982395EFAEDF
|
||||
0C24B2FBDECABA045F97239389C3EBAAC7C6BE10E2BC91CAF3573702891CB79B
|
||||
4B4A408EEFBDF7BA973D129C0F9AB2BF7DE0E1A6CC0D57C7E72BEB804466DFE7
|
||||
04E6BC95AD15D6008C23300644BBC4C207470690C89CF7EED0E74E84779EEDCC
|
||||
18A93ADE57AF00125AF7036EF24C54F76FC1F112E109E139D1860CA97ABACEA4
|
||||
0109FDBD6BB940FD9C765E687A4749E2D440FBAC5AA7543DAF4F2D061219FE27
|
||||
7FEF5D6A2F418CCF77340F2789E57959A10312BABE67E707DF359A0361DA680C
|
||||
8E81D62896E7F9B1794012EBF7E6B3A3B38124D6FEC787928184BE646736C378
|
||||
8192CD52B5F8CA660149ACFD0FF74F071219FE19A8F599E2784B09F7FBBEBCE2
|
||||
A1635F12900C7D44B1CBFB567077237411D6D07EEBE5D0DC1D9391EFA9E0FE85
|
||||
581B9AE35E71821D0194D8653C4913D1BD3F08F67BE72EB15C0D6676BC7BF704
|
||||
DF1DCB040807CE83F3D2B97D63113708F7C170B96F9BC626B715C4F3089080C7
|
||||
792877BFE81CE97510F3CDD1171761DF9617B7A5253F0E444169F4FDEE3B4CB8
|
||||
DB18E6453C6DC92623636FCA65A01F288EDEEDB512EE47A82D0972666B839919
|
||||
8F9C3EC2EFC37194EE6D41B7EF1D62E6609E986623938CBC3C065F53F6F91CC4
|
||||
4FE2DE4BA5D7224CE782B0E390C76CC1C818F374196B2FC639BC6F2DA5FD232F
|
||||
FC015D5569FF
|
||||
}
|
||||
end
|
||||
object ApplicationProperties: TApplicationProperties
|
||||
OnIdle = ApplicationPropertiesIdle
|
||||
Left = 496
|
||||
Top = 240
|
||||
end
|
||||
end
|
||||
|
@ -6,7 +6,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, TASources, TASeries, TAGraph, CheckLst, Spin,
|
||||
ExtCtrls, StdCtrls, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
ExtCtrls, StdCtrls, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons,
|
||||
TAChartListbox, TACustomSeries, TALegend;
|
||||
|
||||
type
|
||||
@ -14,6 +14,7 @@ type
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
ApplicationProperties: TApplicationProperties;
|
||||
Bevel1: TBevel;
|
||||
BtnAddSeries: TButton;
|
||||
BtnDeleteSeries: TButton;
|
||||
@ -26,24 +27,34 @@ type
|
||||
CbShowSeriesIcon: TCheckBox;
|
||||
CbCheckStyle: TCheckBox;
|
||||
CbKeepSeriesOut: TCheckBox;
|
||||
ExpSeries: TLineSeries;
|
||||
ChartListbox: TChartListbox;
|
||||
ColorDialog: TColorDialog;
|
||||
ImageList: TImageList;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Memo: TMemo;
|
||||
Panel2: TPanel;
|
||||
SinSeries: TLineSeries;
|
||||
CosSeries: TLineSeries;
|
||||
ListboxPanel: TPanel;
|
||||
Panel1: TPanel;
|
||||
RandomChartSource: TRandomChartSource;
|
||||
EdColumns: TSpinEdit;
|
||||
BtnUp: TSpeedButton;
|
||||
BtnDown: TSpeedButton;
|
||||
BtnSort: TSpeedButton;
|
||||
Splitter: TSplitter;
|
||||
procedure ApplicationPropertiesIdle(Sender: TObject; var Done: Boolean);
|
||||
procedure BtnAddSeriesClick(Sender: TObject);
|
||||
procedure BtnDeleteSeriesClick(Sender: TObject);
|
||||
procedure BtnDownClick(Sender: TObject);
|
||||
procedure BtnSortClick(Sender: TObject);
|
||||
procedure BtnToggleCOSClick(Sender: TObject);
|
||||
procedure BtnToggleChartClick(Sender: TObject);
|
||||
procedure BtnToggleSINClick(Sender: TObject);
|
||||
procedure BtnAddPointClick(Sender: TObject);
|
||||
procedure BtnUpClick(Sender: TObject);
|
||||
procedure CbShowCheckboxesChange(Sender: TObject);
|
||||
procedure CbShowSeriesIconChange(Sender: TObject);
|
||||
procedure CbCheckStyleChange(Sender: TObject);
|
||||
@ -87,6 +98,7 @@ begin
|
||||
x := mn + (mx - mn) / (n - 1) * i;
|
||||
SinSeries.AddXY(x, sin(x));
|
||||
CosSeries.AddXY(x, cos(x));
|
||||
ExpSeries.AddXY(x, exp(-x));
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -143,6 +155,64 @@ begin
|
||||
SinSeries.Add(Random(5), '', clRed);
|
||||
end;
|
||||
|
||||
procedure TForm1.BtnDownClick(Sender: TObject);
|
||||
var
|
||||
indx: Integer;
|
||||
ser: TBasicChartSeries;
|
||||
begin
|
||||
indx := ChartListbox.ItemIndex;
|
||||
if (indx > -1) and (indx < ChartListbox.SeriesCount-1) then
|
||||
begin
|
||||
ChartListbox.Chart := nil;
|
||||
ser := ChartListbox.Series[indx];
|
||||
ser.Index := indx + 1;
|
||||
ChartListbox.Chart := Chart;
|
||||
ChartListbox.ItemIndex := indx + 1;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.BtnSortClick(Sender: TObject);
|
||||
var
|
||||
List: TStringList;
|
||||
i: Integer;
|
||||
ser: TCustomChartSeries;
|
||||
begin
|
||||
List := TStringList.Create;
|
||||
try
|
||||
for i:=0 to ChartListbox.SeriesCount-1 do
|
||||
begin
|
||||
ser := ChartListbox.Series[i];
|
||||
List.AddObject(ChartListbox.Series[i].Title, ser);
|
||||
end;
|
||||
List.Sort;
|
||||
ChartListbox.Chart := nil;
|
||||
for i := 0 to List.Count-1 do
|
||||
begin
|
||||
ser := TCustomChartSeries(List.Objects[i]);
|
||||
ser.Index := i;
|
||||
end;
|
||||
ChartListbox.Chart := Chart;
|
||||
finally
|
||||
List.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.BtnUpClick(Sender: TObject);
|
||||
var
|
||||
indx: Integer;
|
||||
ser: TBasicChartSeries;
|
||||
begin
|
||||
indx := ChartListbox.ItemIndex;
|
||||
if indx > 0 then
|
||||
begin
|
||||
ChartListbox.Chart := nil;
|
||||
ser := Chartlistbox.Series[indx];
|
||||
ser.Index := indx - 1;
|
||||
ChartListbox.Chart := Chart;
|
||||
ChartListbox.ItemIndex := indx - 1;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.CbShowCheckboxesChange(Sender: TObject);
|
||||
begin
|
||||
with ChartListbox do
|
||||
@ -210,6 +280,12 @@ begin
|
||||
Chart.AddSeries(ser);
|
||||
end;
|
||||
|
||||
procedure TForm1.ApplicationPropertiesIdle(Sender: TObject; var Done: Boolean);
|
||||
begin
|
||||
BtnUp.Enabled := ChartListbox.ItemIndex > 0;
|
||||
BtnDown.Enabled := (ChartListbox.ItemIndex > -1) and (ChartListbox.ItemIndex < ChartListbox.SeriesCount-1);
|
||||
end;
|
||||
|
||||
procedure TForm1.BtnDeleteSeriesClick(Sender: TObject);
|
||||
begin
|
||||
if ChartListbox.ItemIndex = -1 then
|
||||
|
Loading…
Reference in New Issue
Block a user