TChartSeries.AddXY inserts new point into a sorted list, which have O(N^2) computational cost.

This speeds up adding really long series.

Patch from Alexander Klenin
http://bugs.freepascal.org/view.php?id=12642

git-svn-id: trunk@17504 -
This commit is contained in:
darius 2008-11-22 09:44:29 +00:00
parent eea73aea5c
commit 0d6bfec764
4 changed files with 350 additions and 252 deletions

View File

@ -1,7 +1,7 @@
object Form1: TForm1
Left = 345
Left = 470
Height = 499
Top = 114
Top = 248
Width = 585
HelpContext = 0
ActiveControl = Panel1
@ -47,6 +47,7 @@ object Form1: TForm1
Legend.Font.Height = -11
Legend.Font.Name = 'MS Sans Serif'
Legend.Font.Style = []
Legend.Frame.Cosmetic = True
Legend.Frame.Visible = False
Title.Visible = True
Title.Brush.Color = clBtnFace
@ -54,6 +55,7 @@ object Form1: TForm1
Title.Font.Height = -11
Title.Font.Name = 'MS Sans Serif'
Title.Font.Style = []
Title.Frame.Cosmetic = True
Title.Frame.Visible = False
Title.Alignment = taCenter
Title.Text.Strings = (
@ -65,6 +67,7 @@ object Form1: TForm1
Foot.Font.Height = -13
Foot.Font.Name = 'MS Sans Serif'
Foot.Font.Style = [fsBold]
Foot.Frame.Cosmetic = True
Foot.Frame.Visible = False
Foot.Alignment = taLeftJustify
Foot.Text.Strings = (
@ -77,6 +80,7 @@ object Form1: TForm1
LeftAxis.Title.Font.Name = 'MS Sans Serif'
LeftAxis.Title.Font.Style = []
LeftAxis.Grid.Color = clGray
LeftAxis.Grid.Cosmetic = True
LeftAxis.Grid.Style = psDot
LeftAxis.Grid.Visible = True
BottomAxis.Visible = True
@ -86,8 +90,10 @@ object Form1: TForm1
BottomAxis.Title.Font.Name = 'MS Sans Serif'
BottomAxis.Title.Font.Style = []
BottomAxis.Grid.Color = clGray
BottomAxis.Grid.Cosmetic = True
BottomAxis.Grid.Style = psDot
BottomAxis.Grid.Visible = True
Frame.Cosmetic = True
Frame.Visible = True
BackColor = clBtnFace
Align = alClient
@ -173,7 +179,7 @@ object Form1: TForm1
object lblAdd1: TLabel
Left = 13
Height = 18
Top = 42
Top = 40
Width = 38
HelpContext = 0
Align = alNone
@ -201,9 +207,40 @@ object Form1: TForm1
WordWrap = False
OptimalFill = False
end
object Label1: TLabel
Left = 288
Height = 18
Top = 16
Width = 78
HelpContext = 0
Align = alNone
Alignment = taLeftJustify
AutoSize = True
BorderSpacing.Left = 0
BorderSpacing.Top = 0
BorderSpacing.Right = 0
BorderSpacing.Bottom = 0
BorderSpacing.Around = 0
BorderSpacing.CellAlignHorizontal = ccaFill
BorderSpacing.CellAlignVertical = ccaFill
Caption = 'Multiple add'
DragCursor = crDrag
DragMode = dmManual
Enabled = True
Layout = tlTop
ParentBidiMode = True
ParentColor = False
ParentFont = True
ParentShowHint = True
ShowAccelChar = True
Transparent = True
Visible = True
WordWrap = False
OptimalFill = False
end
object btnAddPie: TButton
Left = 64
Height = 25
Left = 48
Height = 24
Top = 8
Width = 52
HelpContext = 0
@ -233,8 +270,8 @@ object Form1: TForm1
Visible = True
end
object btnAddLine: TButton
Left = 232
Height = 25
Left = 216
Height = 24
Top = 8
Width = 52
HelpContext = 0
@ -264,8 +301,8 @@ object Form1: TForm1
Visible = True
end
object btnAddArea: TButton
Left = 120
Height = 25
Left = 104
Height = 24
Top = 8
Width = 52
HelpContext = 0
@ -295,8 +332,8 @@ object Form1: TForm1
Visible = True
end
object btnAddBar: TButton
Left = 176
Height = 25
Left = 160
Height = 24
Top = 8
Width = 52
HelpContext = 0
@ -326,7 +363,7 @@ object Form1: TForm1
Visible = True
end
object cbLegend: TCheckBox
Left = 408
Left = 384
Height = 22
Top = 8
Width = 71
@ -359,7 +396,7 @@ object Form1: TForm1
Visible = True
end
object cbBottomAxis: TCheckBox
Left = 408
Left = 384
Height = 22
Top = 24
Width = 102
@ -392,7 +429,7 @@ object Form1: TForm1
Visible = True
end
object cbLeftAxis: TCheckBox
Left = 408
Left = 384
Height = 22
Top = 40
Width = 78
@ -524,9 +561,9 @@ object Form1: TForm1
Visible = True
end
object btnClearBar: TButton
Left = 176
Height = 25
Top = 40
Left = 160
Height = 24
Top = 38
Width = 52
HelpContext = 0
Align = alNone
@ -555,9 +592,9 @@ object Form1: TForm1
Visible = True
end
object btnClearArea: TButton
Left = 120
Height = 25
Top = 40
Left = 104
Height = 24
Top = 38
Width = 52
HelpContext = 0
Align = alNone
@ -586,9 +623,9 @@ object Form1: TForm1
Visible = True
end
object btnClearLine: TButton
Left = 232
Height = 25
Top = 40
Left = 216
Height = 24
Top = 38
Width = 52
HelpContext = 0
Align = alNone
@ -617,9 +654,9 @@ object Form1: TForm1
Visible = True
end
object btnClearPie: TButton
Left = 64
Height = 25
Top = 40
Left = 48
Height = 24
Top = 38
Width = 52
HelpContext = 0
Align = alNone
@ -647,5 +684,33 @@ object Form1: TForm1
TabStop = True
Visible = True
end
object edAddCount: TSpinEdit
Left = 288
Height = 21
Top = 40
Width = 90
HelpContext = 0
Align = alNone
AutoSelect = False
AutoSize = False
BorderSpacing.Left = 0
BorderSpacing.Top = 0
BorderSpacing.Right = 0
BorderSpacing.Bottom = 0
BorderSpacing.Around = 0
BorderSpacing.CellAlignHorizontal = ccaFill
BorderSpacing.CellAlignVertical = ccaFill
Enabled = True
Increment = 1
MaxValue = 1000000
MinValue = 1
ParentFont = True
ParentShowHint = True
ReadOnly = False
TabStop = True
TabOrder = 14
Value = 1
Visible = True
end
end
end

View File

@ -1,200 +1,219 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'Y'#1#6'Height'#3#243#1#3'Top'#2'r'#5'Widt'
+'h'#3'I'#2#11'HelpContext'#2#0#13'ActiveControl'#7#6'Panel1'#5'Align'#7#6'al'
+'None'#14'AllowDropFiles'#8#10'AutoScroll'#9#8'AutoSize'#8#11'BorderIcons'#11
+#12'biSystemMenu'#10'biMinimize'#10'biMaximize'#0#11'BorderStyle'#7#10'bsSiz'
+'eable'#7'Caption'#6#5'Form1'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildS'
+'izing.TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildS'
+'izing.VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHei'
+'ght'#3#243#1#11'ClientWidth'#3'I'#2#8'DockSite'#8#8'DragKind'#7#6'dkDrag'#8
+'DragMode'#7#8'dmManual'#7'Enabled'#9#11'Font.Height'#2#0#10'Font.Style'#11#0
+#9'FormStyle'#7#8'fsNormal'#14'ParentBiDiMode'#9#10'ParentFont'#8#8'Position'
+#7#14'poScreenCenter'#13'ShowInTaskBar'#7#9'stDefault'#14'UseDockManager'#8
+#10'LCLVersion'#6#6'0.9.27'#11'WindowState'#7#8'wsNormal'#0#6'TChart'#6'Char'
+'t1'#4'Left'#2#0#6'Height'#3#168#1#3'Top'#2#0#5'Width'#3'I'#2#11'HelpContext'
+#2#0#7'MirrorX'#8#20'ShowVerticalReticule'#8#12'ShowReticule'#8#14'Legend.Vi'
+'sible'#8#16'Legend.Alignment'#7#7'laRight'#18'Legend.Font.Height'#2#245#16
+'Legend.Font.Name'#6#13'MS Sans Serif'#17'Legend.Font.Style'#11#0#20'Legend.'
+'Frame.Visible'#8#13'Title.Visible'#9#17'Title.Brush.Color'#7#9'clBtnFace'#16
+'Title.Font.Color'#7#6'clBlue'#17'Title.Font.Height'#2#245#15'Title.Font.Nam'
+'e'#6#13'MS Sans Serif'#16'Title.Font.Style'#11#0#19'Title.Frame.Visible'#8
+#15'Title.Alignment'#7#8'taCenter'#18'Title.Text.Strings'#1#6#20'Centered Ch'
+'art Title'#0#12'Foot.Visible'#8#16'Foot.Brush.Color'#7#9'clBtnFace'#15'Foot'
+'.Font.Color'#7#5'clRed'#16'Foot.Font.Height'#2#243#14'Foot.Font.Name'#6#13
+'MS Sans Serif'#15'Foot.Font.Style'#11#6'fsBold'#0#18'Foot.Frame.Visible'#8
+#14'Foot.Alignment'#7#13'taLeftJustify'#17'Foot.Text.Strings'#1#6#25'This a '
+'LeftAligned Footer'#0#16'LeftAxis.Visible'#9#17'LeftAxis.Inverted'#8#20'Lef'
+'tAxis.Title.Angle'#2'Z'#26'LeftAxis.Title.Font.Height'#2#245#24'LeftAxis.Ti'
+'tle.Font.Name'#6#13'MS Sans Serif'#25'LeftAxis.Title.Font.Style'#11#0#19'Le'
+'ftAxis.Grid.Color'#7#6'clGray'#19'LeftAxis.Grid.Style'#7#5'psDot'#21'LeftAx'
+'is.Grid.Visible'#9#18'BottomAxis.Visible'#9#19'BottomAxis.Inverted'#8#22'Bo'
+'ttomAxis.Title.Angle'#2#0#28'BottomAxis.Title.Font.Height'#2#245#26'BottomA'
+'xis.Title.Font.Name'#6#13'MS Sans Serif'#27'BottomAxis.Title.Font.Style'#11
+#0#21'BottomAxis.Grid.Color'#7#6'clGray'#21'BottomAxis.Grid.Style'#7#5'psDot'
+#23'BottomAxis.Grid.Visible'#9#13'Frame.Visible'#9#9'BackColor'#7#9'clBtnFac'
+'e'#5'Align'#7#8'alClient'#5'Color'#7#9'clBtnFace'#10'DragCursor'#7#6'crDrag'
+#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'ParentColor'#8#14'ParentShowHint'
+#9#7'Visible'#9#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'K'#3'Top'#3
+#168#1#5'Width'#3'I'#2#11'HelpContext'#2#0#5'Align'#7#8'alBottom'#9'Alignmen'
+'t'#7#8'taCenter'#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.'
+'Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'Border'
+'Spacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'Bor'
+'derSpacing.CellAlignVertical'#7#7'ccaFill'#10'BevelInner'#7#6'bvNone'#10'Be'
+'velOuter'#7#8'bvRaised'#10'BevelWidth'#2#1#11'BorderWidth'#2#0#11'BorderSty'
+'le'#7#6'bsNone'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizing.TopBott'
+'omSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizing.Vertica'
+'lSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeight'#2'K'#11
+'ClientWidth'#3'I'#2#8'DockSite'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6
+'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'FullRepaint'#9#11'ParentC'
+'olor'#9#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#0#7'TabStop'#8#7
+'Visible'#9#0#6'TLabel'#6'lblAdd'#4'Left'#2#13#6'Height'#2#18#3'Top'#2#10#5
+'Width'#2#30#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLe'
+'ftJustify'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2
+#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing'
+'.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpac'
+'ing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#4'Add:'#10'DragCursor'#7#6
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#214#1#6'Height'#3#243#1#3'Top'#3#248#0#5
+'Width'#3'I'#2#11'HelpContext'#2#0#13'ActiveControl'#7#6'Panel1'#5'Align'#7#6
+'alNone'#14'AllowDropFiles'#8#10'AutoScroll'#9#8'AutoSize'#8#11'BorderIcons'
+#11#12'biSystemMenu'#10'biMinimize'#10'biMaximize'#0#11'BorderStyle'#7#10'bs'
+'Sizeable'#7'Caption'#6#5'Form1'#28'ChildSizing.LeftRightSpacing'#2#0#28'Chi'
+'ldSizing.TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'Chi'
+'ldSizing.VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'Client'
+'Height'#3#243#1#11'ClientWidth'#3'I'#2#8'DockSite'#8#8'DragKind'#7#6'dkDrag'
+#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'Font.Height'#2#0#10'Font.Style'#11
+#0#9'FormStyle'#7#8'fsNormal'#14'ParentBiDiMode'#9#10'ParentFont'#8#8'Positi'
+'on'#7#14'poScreenCenter'#13'ShowInTaskBar'#7#9'stDefault'#14'UseDockManager'
+#8#10'LCLVersion'#6#6'0.9.27'#11'WindowState'#7#8'wsNormal'#0#6'TChart'#6'Ch'
+'art1'#4'Left'#2#0#6'Height'#3#168#1#3'Top'#2#0#5'Width'#3'I'#2#11'HelpConte'
+'xt'#2#0#7'MirrorX'#8#20'ShowVerticalReticule'#8#12'ShowReticule'#8#14'Legen'
+'d.Visible'#8#16'Legend.Alignment'#7#7'laRight'#18'Legend.Font.Height'#2#245
+#16'Legend.Font.Name'#6#13'MS Sans Serif'#17'Legend.Font.Style'#11#0#21'Lege'
+'nd.Frame.Cosmetic'#9#20'Legend.Frame.Visible'#8#13'Title.Visible'#9#17'Titl'
+'e.Brush.Color'#7#9'clBtnFace'#16'Title.Font.Color'#7#6'clBlue'#17'Title.Fon'
+'t.Height'#2#245#15'Title.Font.Name'#6#13'MS Sans Serif'#16'Title.Font.Style'
+#11#0#20'Title.Frame.Cosmetic'#9#19'Title.Frame.Visible'#8#15'Title.Alignmen'
+'t'#7#8'taCenter'#18'Title.Text.Strings'#1#6#20'Centered Chart Title'#0#12'F'
+'oot.Visible'#8#16'Foot.Brush.Color'#7#9'clBtnFace'#15'Foot.Font.Color'#7#5
+'clRed'#16'Foot.Font.Height'#2#243#14'Foot.Font.Name'#6#13'MS Sans Serif'#15
+'Foot.Font.Style'#11#6'fsBold'#0#19'Foot.Frame.Cosmetic'#9#18'Foot.Frame.Vis'
+'ible'#8#14'Foot.Alignment'#7#13'taLeftJustify'#17'Foot.Text.Strings'#1#6#25
+'This a LeftAligned Footer'#0#16'LeftAxis.Visible'#9#17'LeftAxis.Inverted'#8
+#20'LeftAxis.Title.Angle'#2'Z'#26'LeftAxis.Title.Font.Height'#2#245#24'LeftA'
+'xis.Title.Font.Name'#6#13'MS Sans Serif'#25'LeftAxis.Title.Font.Style'#11#0
+#19'LeftAxis.Grid.Color'#7#6'clGray'#22'LeftAxis.Grid.Cosmetic'#9#19'LeftAxi'
+'s.Grid.Style'#7#5'psDot'#21'LeftAxis.Grid.Visible'#9#18'BottomAxis.Visible'
+#9#19'BottomAxis.Inverted'#8#22'BottomAxis.Title.Angle'#2#0#28'BottomAxis.Ti'
+'tle.Font.Height'#2#245#26'BottomAxis.Title.Font.Name'#6#13'MS Sans Serif'#27
+'BottomAxis.Title.Font.Style'#11#0#21'BottomAxis.Grid.Color'#7#6'clGray'#24
+'BottomAxis.Grid.Cosmetic'#9#21'BottomAxis.Grid.Style'#7#5'psDot'#23'BottomA'
+'xis.Grid.Visible'#9#14'Frame.Cosmetic'#9#13'Frame.Visible'#9#9'BackColor'#7
+#9'clBtnFace'#5'Align'#7#8'alClient'#5'Color'#7#9'clBtnFace'#10'DragCursor'#7
+#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'ParentColor'#8#14'Paren'
+'tShowHint'#9#7'Visible'#9#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'K'
+#3'Top'#3#168#1#5'Width'#3'I'#2#11'HelpContext'#2#0#5'Align'#7#8'alBottom'#9
+'Alignment'#7#8'taCenter'#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'Border'
+'Spacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20
+'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'
+#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#10'BevelInner'#7#6'bvNone'
+#10'BevelOuter'#7#8'bvRaised'#10'BevelWidth'#2#1#11'BorderWidth'#2#0#11'Bord'
+'erStyle'#7#6'bsNone'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizing.To'
+'pBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizing.Ve'
+'rticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeight'#2'K'
+#11'ClientWidth'#3'I'#2#8'DockSite'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'
+#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#11'FullRepaint'#9#11'Par'
+'entColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#0#7'TabStop'
+#8#7'Visible'#9#0#6'TLabel'#6'lblAdd'#4'Left'#2#13#6'Height'#2#18#3'Top'#2#10
+#5'Width'#2#30#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'ta'
+'LeftJustify'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'
+#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpaci'
+'ng.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSp'
+'acing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#4'Add:'#10'DragCursor'#7
+#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'#14'Pa'
+'rentBidiMode'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#13
+'ShowAccelChar'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#8#11'OptimalFil'
+'l'#8#0#0#6'TLabel'#7'lblAdd1'#4'Left'#2#13#6'Height'#2#18#3'Top'#2'('#5'Wid'
+'th'#2'&'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLeftJ'
+'ustify'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0
+#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.A'
+'round'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacin'
,'g.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#6'Clear:'#10'DragCursor'#7#6
+'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'#14'Pare'
+'ntBidiMode'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#13'Sh'
+'owAccelChar'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#8#11'OptimalFill'
+#8#0#0#6'TLabel'#7'lblAdd1'#4'Left'#2#13#6'Height'#2#18#3'Top'#2'*'#5'Width'
+#2'&'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLeftJusti'
+#8#0#0#6'TLabel'#6'Label1'#4'Left'#3' '#1#6'Height'#2#18#3'Top'#2#16#5'Width'
+#2'N'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Alignment'#7#13'taLeftJusti'
+'fy'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'B'
+'orderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Aroun'
+'d'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.Ce'
+'llAlignVertical'#7#7'ccaFill'#7'Caption'#6#6'Clear:'#10'DragCursor'#7#6'crD'
+'rag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'#14'ParentB'
,'idiMode'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#13'ShowA'
+'ccelChar'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#8#11'OptimalFill'#8#0
+#0#7'TButton'#9'btnAddPie'#4'Left'#2'@'#6'Height'#2#25#3'Top'#2#8#5'Width'#2
+'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpacing.'
+'Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSp'
+'acing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerBorder'
+#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellA'
+'lignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Pie'#7'Default'#8#10
+'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBid'
+'iMode'#9#11'ModalResult'#2#0#7'OnClick'#7#14'btnAddPieClick'#10'ParentFont'
+#9#14'ParentShowHint'#9#8'TabOrder'#2#0#7'TabStop'#9#7'Visible'#9#0#0#7'TBut'
+'ton'#10'btnAddLine'#4'Left'#3#232#0#6'Height'#2#25#3'Top'#2#8#5'Width'#2'4'
+#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpacing.Lef'
+'t'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpaci'
+'ng.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerBorder'#2
+#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAli'
+'gnVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Line'#7'Default'#8#10'D'
+'ragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidi'
+'Mode'#9#11'ModalResult'#2#0#7'OnClick'#7#15'btnAddLineClick'#10'ParentFont'
+#9#14'ParentShowHint'#9#8'TabOrder'#2#1#7'TabStop'#9#7'Visible'#9#0#0#7'TBut'
+'ton'#10'btnAddArea'#4'Left'#2'x'#6'Height'#2#25#3'Top'#2#8#5'Width'#2'4'#11
+'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpacing.Left'#2
+#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bo'
+'ttom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerBorder'#2#4'!B'
+'orderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVe'
+'rtical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Area'#7'Default'#8#10'DragC'
+'ursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'
+#9#11'ModalResult'#2#0#7'OnClick'#7#15'btnAddAreaClick'#10'ParentFont'#9#14
+'ParentShowHint'#9#8'TabOrder'#2#2#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#9
+'btnAddBar'#4'Left'#3#176#0#6'Height'#2#25#3'Top'#2#8#5'Width'#2'4'#11'HelpC'
+'ontext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17
+'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'
+#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerBorder'#2#4'!BorderS'
+'pacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'
+#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Bar'#7'Default'#8#10'DragCursor'#7#6
+'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'Moda'
+'lResult'#2#0#7'OnClick'#7#14'btnAddBarClick'#10'ParentFont'#9#14'ParentShow'
+'Hint'#9#8'TabOrder'#2#3#7'TabStop'#9#7'Visible'#9#0#0#9'TCheckBox'#8'cbLege'
+'nd'#4'Left'#3#152#1#6'Height'#2#22#3'Top'#2#8#5'Width'#2'G'#11'HelpContext'
+#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.L'
+'eft'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpa'
+'cing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHoriz'
+'ontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Capt'
+'ion'#6#6'Legend'#7'Checked'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dk'
+'Drag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#14'cbLegendChang'
+'e'#11'ParentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMod'
+'e'#9#5'State'#7#11'cbUnchecked'#8'TabOrder'#2#4#7'TabStop'#9#11'UseOnChange'
+#8#7'Visible'#9#0#0#9'TCheckBox'#12'cbBottomAxis'#4'Left'#3#152#1#6'Height'#2
+#22#3'Top'#2#24#5'Width'#2'f'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'Al'
+'lowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'
+#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpaci'
+'ng.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSp'
+'acing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#11'Bottom Axis'#7'Checke'
+'d'#9#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmM'
+'anual'#7'Enabled'#9#8'OnChange'#7#18'cbBottomAxisChange'#11'ParentColor'#9
+#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#9'cbC'
+'hecked'#8'TabOrder'#2#5#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'T'
+'CheckBox'#10'cbLeftAxis'#4'Left'#3#152#1#6'Height'#2#22#3'Top'#2'('#5'Width'
+#2'N'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'
+#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Rig'
+'ht'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSp'
+'acing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'
+#7#7'ccaFill'#7'Caption'#6#9'Left Axis'#7'Checked'#9#10'DragCursor'#7#6'crDr'
+'ag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChan'
,'ge'#7#16'cbLeftAxisChange'#11'ParentColor'#9#10'ParentFont'#9#14'ParentShow'
+'Hint'#9#14'ParentBidiMode'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#6#7'TabS'
+'top'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'#7'cbTitle'#4'Left'#3
+#240#1#6'Height'#2#22#3'Top'#2#8#5'Width'#2'2'#11'HelpContext'#2#0#5'Align'#7
+#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'Bor'
+'derSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0
+#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFil'
+'l'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#5'Title'#7
+'Checked'#9#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7
+#8'dmManual'#7'Enabled'#9#8'OnChange'#7#13'cbTitleChange'#11'ParentColor'#9
+#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#9'cbC'
+'hecked'#8'TabOrder'#2#7#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'T'
+'CheckBox'#8'cbFooter'#4'Left'#3#240#1#6'Height'#2#22#3'Top'#2#24#5'Width'#2
+'A'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9
+#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'
+#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacin'
+'g.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7
+'ccaFill'#7'Caption'#6#6'Footer'#7'Checked'#8#10'DragCursor'#7#6'crDrag'#8'D'
+'ragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#14
+'cbFooterChange'#11'ParentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14
+'ParentBidiMode'#9#5'State'#7#11'cbUnchecked'#8'TabOrder'#2#8#7'TabStop'#9#11
+'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'#10'cbInverted'#4'Left'#3#240#1
+#6'Height'#2#22#3'Top'#2'('#5'Width'#2'L'#11'HelpContext'#2#0#5'Align'#7#6'a'
+'lNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'Border'
+'Spacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20
+'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'
+#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#8'Inverted'#7
+'Checked'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7
+#8'dmManual'#7'Enabled'#9#8'OnChange'#7#16'cbInvertedChange'#11'ParentColor'
+#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#11
+'cbUnchecked'#8'TabOrder'#2#9#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0
+#7'TButton'#11'btnClearBar'#4'Left'#3#176#0#6'Height'#2#25#3'Top'#2'('#5'Wid'
+'th'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSp'
+'acing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Bo'
+'rderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.Inner'
+'Border'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpaci'
+'ng.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Bar'#7'Defaul'
+'t'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'P'
+'arentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#16'btnClearBarClick'#10'P'
+'arentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#10#7'TabStop'#9#7'Visible'#9
+#0#0#7'TButton'#12'btnClearArea'#4'Left'#2'x'#6'Height'#2#25#3'Top'#2'('#5'W'
+'llAlignVertical'#7#7'ccaFill'#7'Caption'#6#12'Multiple add'#10'DragCursor'#7
+#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'#14'Pa'
+'rentBidiMode'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#13
+'ShowAccelChar'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#8#11'OptimalFil'
+'l'#8#0#0#7'TButton'#9'btnAddPie'#4'Left'#2'0'#6'Height'#2#24#3'Top'#2#8#5'W'
+'idth'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'Border'
+'Spacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20
+'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.Inn'
+'erBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpa'
+'cing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Area'#7'Def'
+'ault'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14
+'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#17'btnClearAreaClick'#10
+'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#11#7'TabStop'#9#7'Visible'
+#9#0#0#7'TButton'#12'btnClearLine'#4'Left'#3#232#0#6'Height'#2#25#3'Top'#2'('
+#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'Bor'
+'derSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0
+#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.'
+'InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'Border'
+'Spacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Line'#7
+'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9
+#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#17'btnClearLineClick'
+#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#12#7'TabStop'#9#7'Visib'
+'le'#9#0#0#7'TButton'#11'btnClearPie'#4'Left'#2'@'#6'Height'#2#25#3'Top'#2'('
+#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'Bor'
+'derSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0
+#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.'
+'InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'Border'
+'Spacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Pie'#7'D'
,'efault'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9
+#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#16'btnClearPieClick'
+#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#13#7'TabStop'#9#7'Visib'
+'le'#9#0#0#0#0
+'cing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Pie'#7'Defa'
+'ult'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14
+'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#14'btnAddPieClick'#10'Pa'
+'rentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#0#7'TabStop'#9#7'Visible'#9#0
+#0#7'TButton'#10'btnAddLine'#4'Left'#3#216#0#6'Height'#2#24#3'Top'#2#8#5'Wid'
+'th'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSp'
+'acing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Bo'
+'rderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.Inner'
+'Border'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpaci'
+'ng.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Line'#7'Defau'
+'lt'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14
+'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#15'btnAddLineClick'#10'P'
+'arentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#1#7'TabStop'#9#7'Visible'#9
+#0#0#7'TButton'#10'btnAddArea'#4'Left'#2'h'#6'Height'#2#24#3'Top'#2#8#5'Widt'
+'h'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpa'
+'cing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Bor'
+'derSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerB'
+'order'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacin'
+'g.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#4'Area'#7'Defaul'
+'t'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'P'
+'arentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#15'btnAddAreaClick'#10'Pa'
+'rentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#2#7'TabStop'#9#7'Visible'#9#0
+#0#7'TButton'#9'btnAddBar'#4'Left'#3#160#0#6'Height'#2#24#3'Top'#2#8#5'Width'
+#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#8'AutoSize'#8#18'BorderSpacin'
+'g.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Border'
+'Spacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0#25'BorderSpacing.InnerBord'
+'er'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.C'
+'ellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#3'Bar'#7'Default'#8
+#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#14'Parent'
+'BidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#14'btnAddBarClick'#10'ParentFo'
+'nt'#9#14'ParentShowHint'#9#8'TabOrder'#2#3#7'TabStop'#9#7'Visible'#9#0#0#9
+'TCheckBox'#8'cbLegend'#4'Left'#3#128#1#6'Height'#2#22#3'Top'#2#8#5'Width'#2
+'G'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9
+#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'
+#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacin'
+'g.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7
+'ccaFill'#7'Caption'#6#6'Legend'#7'Checked'#8#10'DragCursor'#7#6'crDrag'#8'D'
+'ragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#14
+'cbLegendChange'#11'ParentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14
+'ParentBidiMode'#9#5'State'#7#11'cbUnchecked'#8'TabOrder'#2#4#7'TabStop'#9#11
+'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'#12'cbBottomAxis'#4'Left'#3#128
+#1#6'Height'#2#22#3'Top'#2#24#5'Width'#2'f'#11'HelpContext'#2#0#5'Align'#7#6
+'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'Borde'
+'rSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0
+#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFil'
+'l'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Caption'#6#11'Bottom '
,'Axis'#7'Checked'#9#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'Dra'
+'gMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#18'cbBottomAxisChange'#11'P'
+'arentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9#5
+'State'#7#9'cbChecked'#8'TabOrder'#2#5#7'TabStop'#9#11'UseOnChange'#8#7'Visi'
+'ble'#9#0#0#9'TCheckBox'#10'cbLeftAxis'#4'Left'#3#128#1#6'Height'#2#22#3'Top'
+#2'('#5'Width'#2'N'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'
+#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'Bor'
+'derSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'
+#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellA'
+'lignVertical'#7#7'ccaFill'#7'Caption'#6#9'Left Axis'#7'Checked'#9#10'DragCu'
+'rsor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabl'
+'ed'#9#8'OnChange'#7#16'cbLeftAxisChange'#11'ParentColor'#9#10'ParentFont'#9
+#14'ParentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#9'cbChecked'#8'TabOrde'
+'r'#2#6#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'#7'cbTit'
+'le'#4'Left'#3#240#1#6'Height'#2#22#3'Top'#2#8#5'Width'#2'2'#11'HelpContext'
+#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacing.L'
+'eft'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpa'
+'cing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHoriz'
+'ontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Capt'
+'ion'#6#5'Title'#7'Checked'#9#10'DragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkD'
+'rag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#13'cbTitleChange'
+#11'ParentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentBidiMode'#9
+#5'State'#7#9'cbChecked'#8'TabOrder'#2#7#7'TabStop'#9#11'UseOnChange'#8#7'Vi'
+'sible'#9#0#0#9'TCheckBox'#8'cbFooter'#4'Left'#3#240#1#6'Height'#2#22#3'Top'
+#2#24#5'Width'#2'A'#11'HelpContext'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'
+#8#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'Bor'
+'derSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'
+#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellA'
+'lignVertical'#7#7'ccaFill'#7'Caption'#6#6'Footer'#7'Checked'#8#10'DragCurso'
+'r'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'
+#9#8'OnChange'#7#14'cbFooterChange'#11'ParentColor'#9#10'ParentFont'#9#14'Pa'
+'rentShowHint'#9#14'ParentBidiMode'#9#5'State'#7#11'cbUnchecked'#8'TabOrder'
+#2#8#7'TabStop'#9#11'UseOnChange'#8#7'Visible'#9#0#0#9'TCheckBox'#10'cbInver'
+'ted'#4'Left'#3#240#1#6'Height'#2#22#3'Top'#2'('#5'Width'#2'L'#11'HelpContex'
+'t'#2#0#5'Align'#7#6'alNone'#11'AllowGrayed'#8#8'AutoSize'#9#18'BorderSpacin'
+'g.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'Border'
+'Spacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.CellAlignHo'
+'rizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'C'
+'aption'#6#8'Inverted'#7'Checked'#8#10'DragCursor'#7#6'crDrag'#8'DragKind'#7
+#6'dkDrag'#8'DragMode'#7#8'dmManual'#7'Enabled'#9#8'OnChange'#7#16'cbInverte'
+'dChange'#11'ParentColor'#9#10'ParentFont'#9#14'ParentShowHint'#9#14'ParentB'
+'idiMode'#9#5'State'#7#11'cbUnchecked'#8'TabOrder'#2#9#7'TabStop'#9#11'UseOn'
+'Change'#8#7'Visible'#9#0#0#7'TButton'#11'btnClearBar'#4'Left'#3#160#0#6'Hei'
+'ght'#2#24#3'Top'#2'&'#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'
+#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'Borde'
+'rSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2
+#0#25'BorderSpacing.InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7
+'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Cap'
+'tion'#6#3'Bar'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmMa'
+'nual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#16
+'btnClearBarClick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#10#7
+'TabStop'#9#7'Visible'#9#0#0#7'TButton'#12'btnClearArea'#4'Left'#2'h'#6'Heig'
+'ht'#2#24#3'Top'#2'&'#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'
+#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'Borde'
+'rSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2
+#0#25'BorderSpacing.InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7
+'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Cap'
+'tion'#6#4'Area'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmM'
+'anual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#17
+'btnClearAreaClick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#11#7
+'TabStop'#9#7'Visible'#9#0#0#7'TButton'#12'btnClearLine'#4'Left'#3#216#0#6'H'
+'eight'#2#24#3'Top'#2'&'#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNo'
+'ne'#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'B'
+'orderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Aroun'
,'d'#2#0#25'BorderSpacing.InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'
+#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7
+'Caption'#6#4'Line'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8
+'dmManual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7
+#17'btnClearLineClick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#12
+#7'TabStop'#9#7'Visible'#9#0#0#7'TButton'#11'btnClearPie'#4'Left'#2'0'#6'Hei'
+'ght'#2#24#3'Top'#2'&'#5'Width'#2'4'#11'HelpContext'#2#0#5'Align'#7#6'alNone'
+#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'Borde'
+'rSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2
+#0#25'BorderSpacing.InnerBorder'#2#4'!BorderSpacing.CellAlignHorizontal'#7#7
+'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Cap'
+'tion'#6#3'Pie'#7'Default'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmMa'
+'nual'#7'Enabled'#9#14'ParentBidiMode'#9#11'ModalResult'#2#0#7'OnClick'#7#16
+'btnClearPieClick'#10'ParentFont'#9#14'ParentShowHint'#9#8'TabOrder'#2#13#7
+'TabStop'#9#7'Visible'#9#0#0#9'TSpinEdit'#10'edAddCount'#4'Left'#3' '#1#6'He'
+'ight'#2#21#3'Top'#2'('#5'Width'#2'Z'#11'HelpContext'#2#0#5'Align'#7#6'alNon'
+'e'#10'AutoSelect'#8#8'AutoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpaci'
+'ng.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'Bor'
+'derSpacing.Around'#2#0'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31
+'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#7'Enabled'#9#9'Increment'#2#1
+#8'MaxValue'#4'@B'#15#0#8'MinValue'#2#1#10'ParentFont'#9#14'ParentShowHint'#9
+#8'ReadOnly'#8#7'TabStop'#9#8'TabOrder'#2#14#5'Value'#2#1#7'Visible'#9#0#0#0
+#0
]);

View File

@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
TAGraph, TASeries, Buttons, StdCtrls;
TAGraph, TASeries, Buttons, StdCtrls, Spin;
type
{ TForm1 }
@ -27,9 +27,11 @@ type
cbFooter: TCheckBox;
cbInverted: TCheckBox;
cbLegend: TCheckBox;
Label1: TLabel;
lblAdd: TLabel;
lblAdd1: TLabel;
Panel1: TPanel;
edAddCount: TSpinEdit;
procedure btnClearAreaClick(Sender: TObject);
procedure btnClearBarClick(Sender: TObject);
procedure btnClearLineClick(Sender: TObject);
@ -64,45 +66,58 @@ implementation
{ TForm1 }
procedure TForm1.btnAddAreaClick(Sender: TObject);
var
i: integer;
begin
if FArea = nil then InitArea;
X3 := X3 + 1;
if random(2) >= 0.7 then Y3 := Y3 + random(5)
else if random(2) >= 0.7 then Y3 := 0
else Y3 := Y3 - random(5);
FArea.AddXY(x3, y3, '', clTAColor);
for i := 1 to edAddCount.Value do begin
X3 := X3 + 1;
if random(2) >= 0.7 then Y3 := Y3 + random(5)
else if random(2) >= 0.7 then Y3 := 0
else Y3 := Y3 - random(5);
FArea.AddXY(x3, y3, '', clTAColor);
end;
end;
procedure TForm1.btnAddBarClick(Sender: TObject);
var
i: integer;
begin
if FBar = nil then InitBar;
FBar.AddXY(x, y, '', clRed);
X := X + 1;
if random(2) >= 0.7 then Y := Y + random(5)
else if random(2) >= 0.7 then Y := 0
else Y := Y - random(5);
for i := 1 to edAddCount.Value do begin
FBar.AddXY(x, y, '', clRed);
X := X + 1;
if random(2) >= 0.7 then Y := Y + random(5)
else if random(2) >= 0.7 then Y := 0
else Y := Y - random(5);
end;
end;
procedure TForm1.btnAddLineClick(Sender: TObject);
var
i: integer;
begin
if FLine = nil then InitLine;
FLine.AddXY(x1, y1, '', clGreen);
X1 := X1 + 1.5;
if random(2) >= 0.5 then Y1 := Y1 + random(10)
else Y1 := Y1 - random(5);
for i := 1 to edAddCount.Value do begin
FLine.AddXY(x1, y1, '', clGreen);
X1 := X1 + 1.5;
if random(2) >= 0.5 then Y1 := Y1 + random(10)
else Y1 := Y1 - random(5);
end;
end;
procedure TForm1.btnAddPieClick(Sender: TObject);
var
i: integer;
begin
if FPie = nil then InitPie;
FPie.AddPie(3.4234235235, 'sde21312', clTAColor);
FPie.AddPie(0.2323, 'adassssssdddddd', clTAColor);
FPie.AddPie(30, 'filipe romao', clTAColor);
FPie.AddPie(40, '234eds sa', clTAColor);
for i := 1 to edAddCount.Value do begin
FPie.AddPie(3.4234235235, 'sde21312', clTAColor);
FPie.AddPie(0.2323, 'adassssssdddddd', clTAColor);
FPie.AddPie(30, 'filipe romao', clTAColor);
FPie.AddPie(40, '234eds sa', clTAColor);
end;
end;
procedure TForm1.btnClearAreaClick(Sender: TObject);
@ -160,8 +175,8 @@ procedure TForm1.InitArea;
begin
FArea := TAreaSeries.Create(Chart1);
Chart1.AddSerie(FArea);
FArea.SeriesColor := clred;
FArea.Stairs := true;
FArea.SeriesColor := clFuchsia;
//FArea.Stairs := true;
FArea.InvertedStairs := false;
end;

View File

@ -387,24 +387,23 @@ end;
function TChartSeries.AddXY(X, Y: Double; XLabel: String; Color: TColor): Longint;
var
coordn: PChartCoord;
i: Integer;
pcc: PChartCoord;
begin
//save the coord and color
New(coordn);
coordn^.x := X;
coordn^.y := Y;
coordn^.Color := Color;
coordn^.Text := XLabel;
New(pcc);
pcc^.x := X;
pcc^.y := Y;
pcc^.Color := Color;
pcc^.Text := XLabel;
//add in order or at end
i := 0;
while (i < FCoordList.Count) and (PChartCoord(FCoordList.Items[i])^.x <= X) do
Inc(i);
if i = FCoordList.Count then FCoordList.Add(coordn)
else FCoordList.Insert(i, coordn);
Result := FCoordList.IndexOf(coordn);
// We keep FCoordList ordered by X coordinate.
// Note that this leads to O(N^2) time except
// for the case of adding already ordered points.
// So, is the user wants to add many (>10000) points to a graph,
// he should pre-sort them to avoid performance penalty.
Result := FCoordList.Count;
while (Result > 0) and (PChartCoord(FCoordList.Items[Result - 1])^.x > X) do
Dec(Result);
FCoordList.Insert(Result, pcc);
end;
function TChartSeries.Add(AValue: Double; XLabel: String; Color: TColor): Longint;