mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 20:39:14 +02:00
TAChart: Refactoring of TChartCombobox and demo.
git-svn-id: trunk@54123 -
This commit is contained in:
parent
349fdc7200
commit
efd873b33e
@ -48,7 +48,11 @@ object Form1: TForm1
|
|||||||
Title = 'Line'
|
Title = 'Line'
|
||||||
ZPosition = 1
|
ZPosition = 1
|
||||||
LinePen.Color = clBlue
|
LinePen.Color = clBlue
|
||||||
|
LinePen.Width = 2
|
||||||
Pointer.Brush.Color = clSkyBlue
|
Pointer.Brush.Color = clSkyBlue
|
||||||
|
Pointer.HorizSize = 5
|
||||||
|
Pointer.Style = psCircle
|
||||||
|
Pointer.VertSize = 5
|
||||||
ShowPoints = True
|
ShowPoints = True
|
||||||
Source = RandomChartSource1
|
Source = RandomChartSource1
|
||||||
end
|
end
|
||||||
@ -144,7 +148,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnChange = CbLineSerLinePenStyleChange
|
OnChange = LinePenChange
|
||||||
end
|
end
|
||||||
object CbLineSerLinePenWidth: TChartComboBox
|
object CbLineSerLinePenWidth: TChartComboBox
|
||||||
AnchorSideLeft.Control = CbLineSerLinePenStyle
|
AnchorSideLeft.Control = CbLineSerLinePenStyle
|
||||||
@ -165,7 +169,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
OnChange = CbLineSerLinePenWidthChange
|
OnChange = LinePenChange
|
||||||
end
|
end
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
AnchorSideLeft.Control = GbLineSerLines
|
AnchorSideLeft.Control = GbLineSerLines
|
||||||
@ -192,7 +196,7 @@ object Form1: TForm1
|
|||||||
ParentColor = False
|
ParentColor = False
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object CbLineSerPenColor: TColorBox
|
object CbLineSerLinePenColor: TColorBox
|
||||||
AnchorSideLeft.Control = CbLineSerLinePenWidth
|
AnchorSideLeft.Control = CbLineSerLinePenWidth
|
||||||
AnchorSideTop.Control = CbLineSerLinePenWidth
|
AnchorSideTop.Control = CbLineSerLinePenWidth
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
@ -208,13 +212,13 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbLineSerPenColorChange
|
OnChange = LinePenChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
object Label4: TLabel
|
object Label4: TLabel
|
||||||
AnchorSideLeft.Control = Label1
|
AnchorSideLeft.Control = Label1
|
||||||
AnchorSideTop.Control = CbLineSerPenColor
|
AnchorSideTop.Control = CbLineSerLinePenColor
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 8
|
Left = 8
|
||||||
Height = 15
|
Height = 15
|
||||||
@ -234,7 +238,7 @@ object Form1: TForm1
|
|||||||
Anchors = []
|
Anchors = []
|
||||||
Caption = 'Show'
|
Caption = 'Show'
|
||||||
Checked = True
|
Checked = True
|
||||||
OnChange = CbShowLinesChange
|
OnChange = LinePenChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
State = cbChecked
|
State = cbChecked
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
@ -272,7 +276,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnChange = CbLineSerPointerStyleChange
|
OnChange = LinePointerChange
|
||||||
end
|
end
|
||||||
object Label5: TLabel
|
object Label5: TLabel
|
||||||
AnchorSideLeft.Control = GbLineSerPointer
|
AnchorSideLeft.Control = GbLineSerPointer
|
||||||
@ -326,7 +330,7 @@ object Form1: TForm1
|
|||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbLineSerPointerBorderColorChange
|
OnChange = LinePointerChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
@ -344,7 +348,7 @@ object Form1: TForm1
|
|||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbLineSerPointerBrushColorChange
|
OnChange = LinePointerChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
@ -360,7 +364,7 @@ object Form1: TForm1
|
|||||||
Alignment = taRightJustify
|
Alignment = taRightJustify
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
OnChange = EdLineSerPointerSizeChange
|
OnChange = LinePointerChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
Value = 4
|
Value = 4
|
||||||
@ -387,7 +391,7 @@ object Form1: TForm1
|
|||||||
Anchors = []
|
Anchors = []
|
||||||
Caption = 'Show'
|
Caption = 'Show'
|
||||||
Checked = True
|
Checked = True
|
||||||
OnChange = CbShowPointsChange
|
OnChange = LinePointerChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
State = cbChecked
|
State = cbChecked
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
@ -424,7 +428,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = CbBarSerPenStyleChange
|
OnChange = BarPenChange
|
||||||
end
|
end
|
||||||
object CbBarSerPenWidth: TChartComboBox
|
object CbBarSerPenWidth: TChartComboBox
|
||||||
AnchorSideTop.Control = CbBarSerPenStyle
|
AnchorSideTop.Control = CbBarSerPenStyle
|
||||||
@ -443,7 +447,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnChange = CbBarSerPenWidthChange
|
OnChange = BarPenChange
|
||||||
end
|
end
|
||||||
object Label8: TLabel
|
object Label8: TLabel
|
||||||
AnchorSideLeft.Control = GbBarSerPen
|
AnchorSideLeft.Control = GbBarSerPen
|
||||||
@ -484,7 +488,7 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbBarSerPenColorChange
|
OnChange = BarPenChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
@ -543,7 +547,7 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbBarSerBrushColorChange
|
OnChange = BarBrushChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
@ -574,12 +578,12 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = CbBarSerBrushStyleChange
|
OnChange = BarBrushChange
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object Page3: TPage
|
object Page3: TPage
|
||||||
object GbBarSerBrush1: TGroupBox
|
object GbAreaSerBrush: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 82
|
Height = 82
|
||||||
Top = 4
|
Top = 4
|
||||||
@ -595,7 +599,7 @@ object Form1: TForm1
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object Label13: TLabel
|
object Label13: TLabel
|
||||||
AnchorSideLeft.Control = GbBarSerBrush1
|
AnchorSideLeft.Control = GbAreaSerBrush
|
||||||
AnchorSideTop.Control = CbAreaSerBrushColor
|
AnchorSideTop.Control = CbAreaSerBrushColor
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 8
|
Left = 8
|
||||||
@ -620,7 +624,7 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbAreaSerBrushColorChange
|
OnChange = AreaBrushChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
@ -637,7 +641,7 @@ object Form1: TForm1
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object CbAreaSerBrushStyle: TChartComboBox
|
object CbAreaSerBrushStyle: TChartComboBox
|
||||||
AnchorSideTop.Control = GbBarSerBrush1
|
AnchorSideTop.Control = GbAreaSerBrush
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 80
|
Left = 80
|
||||||
Height = 22
|
Height = 22
|
||||||
@ -651,10 +655,10 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = CbAreaSerBrushStyleChange
|
OnChange = AreaBrushChange
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GbBarSerPen1: TGroupBox
|
object GbAreaSerContour: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 112
|
Height = 112
|
||||||
Top = 94
|
Top = 94
|
||||||
@ -670,7 +674,7 @@ object Form1: TForm1
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object CbAreaSerContourStyle: TChartComboBox
|
object CbAreaSerContourStyle: TChartComboBox
|
||||||
AnchorSideTop.Control = GbBarSerPen1
|
AnchorSideTop.Control = GbAreaSerContour
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 80
|
Left = 80
|
||||||
Height = 22
|
Height = 22
|
||||||
@ -683,7 +687,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = CbAreaSerContourStyleChange
|
OnChange = AreaContourChange
|
||||||
end
|
end
|
||||||
object CbAreaSerContourWidth: TChartComboBox
|
object CbAreaSerContourWidth: TChartComboBox
|
||||||
AnchorSideTop.Control = CbAreaSerContourStyle
|
AnchorSideTop.Control = CbAreaSerContourStyle
|
||||||
@ -702,10 +706,10 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnChange = CbAreaSerContourWidthChange
|
OnChange = AreaContourChange
|
||||||
end
|
end
|
||||||
object Label11: TLabel
|
object Label11: TLabel
|
||||||
AnchorSideLeft.Control = GbBarSerPen1
|
AnchorSideLeft.Control = GbAreaSerContour
|
||||||
AnchorSideTop.Control = CbAreaSerContourStyle
|
AnchorSideTop.Control = CbAreaSerContourStyle
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 8
|
Left = 8
|
||||||
@ -742,7 +746,7 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbAreaSerContourColorChange
|
OnChange = AreaContourChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
@ -759,7 +763,7 @@ object Form1: TForm1
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GbBarSerPen2: TGroupBox
|
object GbAreaSerLines: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 112
|
Height = 112
|
||||||
Top = 214
|
Top = 214
|
||||||
@ -775,7 +779,7 @@ object Form1: TForm1
|
|||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object CbAreaSerLinesStyle: TChartComboBox
|
object CbAreaSerLinesStyle: TChartComboBox
|
||||||
AnchorSideTop.Control = GbBarSerPen2
|
AnchorSideTop.Control = GbAreaSerLines
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 80
|
Left = 80
|
||||||
Height = 22
|
Height = 22
|
||||||
@ -788,7 +792,7 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = CbAreaSerLinesStyleChange
|
OnChange = AreaLinesChange
|
||||||
end
|
end
|
||||||
object CbAreaSerLinesWidth: TChartComboBox
|
object CbAreaSerLinesWidth: TChartComboBox
|
||||||
AnchorSideTop.Control = CbAreaSerLinesStyle
|
AnchorSideTop.Control = CbAreaSerLinesStyle
|
||||||
@ -807,10 +811,10 @@ object Form1: TForm1
|
|||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnChange = CbAreaSerLinesWidthChange
|
OnChange = AreaLinesChange
|
||||||
end
|
end
|
||||||
object Label18: TLabel
|
object Label18: TLabel
|
||||||
AnchorSideLeft.Control = GbBarSerPen2
|
AnchorSideLeft.Control = GbAreaSerLines
|
||||||
AnchorSideTop.Control = CbAreaSerLinesStyle
|
AnchorSideTop.Control = CbAreaSerLinesStyle
|
||||||
AnchorSideTop.Side = asrCenter
|
AnchorSideTop.Side = asrCenter
|
||||||
Left = 8
|
Left = 8
|
||||||
@ -847,7 +851,7 @@ object Form1: TForm1
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Bottom = 10
|
BorderSpacing.Bottom = 10
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
OnChange = CbAreaSerLinesColorChange
|
OnChange = AreaLinesChange
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
|
@ -40,13 +40,13 @@ type
|
|||||||
CbBarSerBrushStyle: TChartComboBox;
|
CbBarSerBrushStyle: TChartComboBox;
|
||||||
ChartListbox1: TChartListbox;
|
ChartListbox1: TChartListbox;
|
||||||
CbShow: TCheckBox;
|
CbShow: TCheckBox;
|
||||||
CbLineSerPenColor: TColorBox;
|
CbLineSerLinePenColor: TColorBox;
|
||||||
ChartToolset1: TChartToolset;
|
ChartToolset1: TChartToolset;
|
||||||
ChartToolset1DataPointClickTool1: TDataPointClickTool;
|
ChartToolset1DataPointClickTool1: TDataPointClickTool;
|
||||||
CbShowPoints: TCheckBox;
|
CbShowPoints: TCheckBox;
|
||||||
GbBarSerBrush1: TGroupBox;
|
GbAreaSerBrush: TGroupBox;
|
||||||
GbBarSerPen1: TGroupBox;
|
GbAreaSerContour: TGroupBox;
|
||||||
GbBarSerPen2: TGroupBox;
|
GbAreaSerLines: TGroupBox;
|
||||||
GbLineSerLines: TGroupBox;
|
GbLineSerLines: TGroupBox;
|
||||||
GbBarSerPen: TGroupBox;
|
GbBarSerPen: TGroupBox;
|
||||||
GbLineSerPointer: TGroupBox;
|
GbLineSerPointer: TGroupBox;
|
||||||
@ -83,34 +83,20 @@ type
|
|||||||
RandomChartSource3: TRandomChartSource;
|
RandomChartSource3: TRandomChartSource;
|
||||||
EdLineSerPointerSize: TSpinEdit;
|
EdLineSerPointerSize: TSpinEdit;
|
||||||
Splitter1: TSplitter;
|
Splitter1: TSplitter;
|
||||||
procedure CbAreaSerBrushColorChange(Sender: TObject);
|
procedure AreaBrushChange(Sender: TObject);
|
||||||
procedure CbAreaSerBrushStyleChange(Sender: TObject);
|
procedure AreaContourChange(Sender: TObject);
|
||||||
procedure CbAreaSerContourColorChange(Sender: TObject);
|
procedure AreaLinesChange(Sender: TObject);
|
||||||
procedure CbAreaSerContourStyleChange(Sender: TObject);
|
procedure BarBrushChange(Sender: TObject);
|
||||||
procedure CbAreaSerContourWidthChange(Sender: TObject);
|
procedure BarPenChange(Sender: TObject);
|
||||||
procedure CbAreaSerLinesColorChange(Sender: TObject);
|
procedure LinePenChange(Sender: TObject);
|
||||||
procedure CbAreaSerLinesStyleChange(Sender: TObject);
|
procedure LinePointerChange(Sender: TObject);
|
||||||
procedure CbAreaSerLinesWidthChange(Sender: TObject);
|
|
||||||
procedure CbBarSerBrushColorChange(Sender: TObject);
|
|
||||||
procedure CbBarSerBrushStyleChange(Sender: TObject);
|
|
||||||
procedure CbBarSerPenStyleChange(Sender: TObject);
|
|
||||||
procedure CbBarSerPenWidthChange(Sender: TObject);
|
|
||||||
procedure CbBarSerPenColorChange(Sender: TObject);
|
|
||||||
procedure CbLineSerPointerBorderColorChange(Sender: TObject);
|
|
||||||
procedure CbLineSerLinePenStyleChange(Sender: TObject);
|
|
||||||
procedure CbLineSerLinePenWidthChange(Sender: TObject);
|
|
||||||
procedure CbLineSerPenColorChange(Sender: TObject);
|
|
||||||
procedure CbLineSerPointerBrushColorChange(Sender: TObject);
|
|
||||||
procedure CbLineSerPointerStyleChange(Sender: TObject);
|
|
||||||
procedure CbShowChange(Sender: TObject);
|
procedure CbShowChange(Sender: TObject);
|
||||||
procedure CbShowLinesChange(Sender: TObject);
|
|
||||||
procedure CbShowPointsChange(Sender: TObject);
|
|
||||||
procedure ChartListbox1Click(Sender: TObject);
|
procedure ChartListbox1Click(Sender: TObject);
|
||||||
procedure ChartToolset1DataPointClickTool1PointClick(ATool: TChartTool;
|
procedure ChartToolset1DataPointClickTool1PointClick(ATool: TChartTool;
|
||||||
APoint: TPoint);
|
APoint: TPoint);
|
||||||
procedure EdLineSerPointerSizeChange(Sender: TObject);
|
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
FLockChanges: Integer;
|
||||||
|
|
||||||
public
|
public
|
||||||
|
|
||||||
@ -124,174 +110,115 @@ implementation
|
|||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
FPCanvas, TACustomSeries;
|
FPCanvas, TAChartUtils, TACustomSeries;
|
||||||
|
|
||||||
|
|
||||||
{ TAreaSeries }
|
{ TAreaSeries }
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerBrushColorChange(Sender: TObject);
|
procedure TForm1.AreaBrushChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
ser: TAreaSeries;
|
ser: TAreaSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
||||||
ser.AreaBrush.Color := CbAreaSerBrushColor.Selected;
|
ser.AreaBrush.Color := CbAreaSerBrushColor.Selected;
|
||||||
end;
|
ser.AreaBrush.Style := CbAreaserBrushStyle.BrushStyle;
|
||||||
|
if CbAreaSerBrushStyle.BrushStyle in [bsImage, bsPattern] then
|
||||||
procedure TForm1.CbAreaSerBrushStyleChange(Sender: TObject);
|
// Must be AFTER assigning brush style because that sets Brush.Bitmap to nil
|
||||||
var
|
|
||||||
ser: TAreaSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
|
||||||
ser.AreaBrush.Style := CbAreaSerBrushStyle.BrushStyle;
|
|
||||||
if CbAreaSerBrushStyle.BrushStyle = bsImage then
|
|
||||||
// Must be AFTER assigning Brush.Style.
|
|
||||||
ser.AreaBrush.Bitmap := CbAreaSerBrushStyle.BrushBitmap;
|
ser.AreaBrush.Bitmap := CbAreaSerBrushStyle.BrushBitmap;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerContourColorChange(Sender: TObject);
|
procedure TForm1.AreaContourChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
ser: TAreaSeries;
|
ser: TAreaSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
||||||
ser.AreaContourPen.Color := CbAreaSerContourColor.Selected;
|
ser.AreaContourPen.Color := CbAreaSerContourColor.Selected;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerContourStyleChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TAreaSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
|
||||||
ser.AreaContourPen.Style := CbAreaSerContourStyle.PenStyle;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerContourWidthChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TAreaSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
|
||||||
ser.AreaContourPen.Width := CbAreaSerContourWidth.PenWidth;
|
ser.AreaContourPen.Width := CbAreaSerContourWidth.PenWidth;
|
||||||
|
ser.AreaContourPen.Style := CbAreaSerContourStyle.PenStyle;
|
||||||
|
if ser.AreaContourPen.Style = psPattern then
|
||||||
|
CbAreaSerContourStyle.SetPenPattern(ser.AreaContourPen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerLinesColorChange(Sender: TObject);
|
procedure TForm1.AreaLinesChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
ser: TAreaSeries;
|
ser: TAreaSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
||||||
ser.AreaLinesPen.Color := CbAreaSerLinesColor.Selected;
|
ser.AreaLinesPen.Color := CbAreaSerLinesColor.Selected;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerLinesStyleChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TAreaSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
|
||||||
ser.AreaLinesPen.Style := CbAreaSerLinesStyle.PenStyle;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbAreaSerLinesWidthChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TAreaSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TAreaSeries;
|
||||||
ser.AreaLinesPen.Width := CbAreaSerLinesWidth.PenWidth;
|
ser.AreaLinesPen.Width := CbAreaSerLinesWidth.PenWidth;
|
||||||
|
ser.AreaLinesPen.Style := CbAreaSerLinesStyle.PenStyle;
|
||||||
|
if ser.AreaLinesPen.Style = psPattern then
|
||||||
|
CbAreaSerLinesStyle.SetPenPattern(ser.AreaLinesPen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TBarSeries }
|
{ TBarSeries }
|
||||||
|
|
||||||
procedure TForm1.CbBarSerBrushColorChange(Sender: TObject);
|
procedure TForm1.BarBrushChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
ser: TBarSeries;
|
ser: TbarSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
||||||
ser.BarBrush.Color := CbBarSerBrushColor.Selected;
|
ser.BarBrush.Color := CbBarSerBrushColor.Selected;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbBarSerBrushStyleChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TBarSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
|
||||||
ser.BarBrush.Style := CbBarSerBrushStyle.BrushStyle;
|
ser.BarBrush.Style := CbBarSerBrushStyle.BrushStyle;
|
||||||
if CbBarSerBrushStyle.BrushStyle = bsImage then
|
if CbBarSerBrushStyle.BrushStyle in [bsImage, bsPattern] then
|
||||||
// Must be AFTER assigning Brush.Style.
|
// Must be AFTER assigning brush style
|
||||||
ser.BarBrush.Bitmap := CbBarSerBrushStyle.BrushBitmap;
|
ser.BarBrush.Bitmap := CbBarSerBrushStyle.BrushBitmap;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.CbBarSerPenStyleChange(Sender: TObject);
|
procedure TForm1.BarPenChange(Sender: TObject);
|
||||||
var
|
|
||||||
ser: TBarSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
|
||||||
ser.BarPen.Style := CbBarSerPenStyle.PenStyle;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbBarSerPenWidthChange(Sender: TObject);
|
|
||||||
var
|
var
|
||||||
ser: TBarSeries;
|
ser: TBarSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
||||||
|
ser.BarPen.Color := CbBarSerPenColor.Selected;
|
||||||
ser.BarPen.Width := CbBarSerPenWidth.PenWidth;
|
ser.BarPen.Width := CbBarSerPenWidth.PenWidth;
|
||||||
|
ser.BarPen.Style := CbBarSerPenStyle.PenStyle;
|
||||||
|
if ser.BarPen.Style = psPattern then
|
||||||
|
CbBarSerPenStyle.SetPenPattern(ser.BarPen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ Line series }
|
{ Line series }
|
||||||
|
|
||||||
procedure TForm1.CbLineSerLinePenStyleChange(Sender: TObject);
|
procedure TForm1.LinePenChange(Sender: TObject);
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
CbLineSerLinePenStyle.SetPenPattern(ser.LinePen);
|
|
||||||
ser.LinePen.Cosmetic := CbLineSerLinePenStyle.Cosmetic;
|
|
||||||
ser.LinePen.Style := CbLineSerLinePenStyle.PenStyle;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbLineSerLinePenWidthChange(Sender: TObject);
|
|
||||||
var
|
var
|
||||||
ser: TLineSeries;
|
ser: TLineSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
||||||
|
ser.LinePen.Color := CbLineSerLinePenColor.Selected;
|
||||||
ser.LinePen.Width := CbLineSerLinePenWidth.PenWidth;
|
ser.LinePen.Width := CbLineSerLinePenWidth.PenWidth;
|
||||||
|
ser.LinePen.Style := CbLineSerLinePenStyle.PenStyle;
|
||||||
|
if ser.LinePen.Style = psPattern then
|
||||||
|
CbLineSerLinePenStyle.SetPenPattern(ser.LinePen);
|
||||||
|
ser.ShowLines := cbShowLines.Checked;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.CbBarSerPenColorChange(Sender: TObject);
|
procedure TForm1.LinePointerChange(Sender: TObject);
|
||||||
var
|
|
||||||
ser: TBarSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TBarSeries;
|
|
||||||
ser.BarPen.Color := CbBarSerPenColor.Selected;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbLineSerPenColorChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.LinePen.Color := CbLineSerPenColor.Selected;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbLineSerPointerBorderColorChange(Sender: TObject);
|
|
||||||
var
|
var
|
||||||
ser: TLineSeries;
|
ser: TLineSeries;
|
||||||
begin
|
begin
|
||||||
|
if FLockChanges > 0 then
|
||||||
|
exit;
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
||||||
ser.Pointer.Pen.Color := CbLineSerPointerBorderColor.Selected;
|
ser.Pointer.Pen.Color := CbLineSerPointerBorderColor.Selected;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbLineSerPointerBrushColorChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.Pointer.Brush.Color := CbLineSerPointerBrushColor.Selected;
|
ser.Pointer.Brush.Color := CbLineSerPointerBrushColor.Selected;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbLineSerPointerStyleChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.Pointer.Style := CbLineSerPointerStyle.PointerStyle;
|
ser.Pointer.Style := CbLineSerPointerStyle.PointerStyle;
|
||||||
|
ser.Pointer.HorizSize := EdLineSerPointerSize.Value;
|
||||||
|
ser.Pointer.VertSize := EdLineSerPointerSize.Value;
|
||||||
|
ser.ShowPoints := CbShowPoints.Checked;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -305,22 +232,6 @@ begin
|
|||||||
ser.Active := CbShow.Checked;
|
ser.Active := CbShow.Checked;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.CbShowLinesChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.ShowLines := CbShowLines.Checked;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.CbShowPointsChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.ShowPoints := CbShowPoints.Checked;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.ChartListbox1Click(Sender: TObject);
|
procedure TForm1.ChartListbox1Click(Sender: TObject);
|
||||||
var
|
var
|
||||||
ser: TCustomChartSeries;
|
ser: TCustomChartSeries;
|
||||||
@ -328,26 +239,34 @@ begin
|
|||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex];
|
ser := ChartListbox1.Series[ChartListbox1.ItemIndex];
|
||||||
if ser is TLineSeries then begin
|
if ser is TLineSeries then begin
|
||||||
Notebook1.PageIndex := 0;
|
Notebook1.PageIndex := 0;
|
||||||
|
CbShowLines.Checked := TLineSeries(ser).ShowLines;
|
||||||
CbLineSerLinePenStyle.SetPenPattern(TLineSeries(ser).LinePen);
|
CbLineSerLinePenStyle.SetPenPattern(TLineSeries(ser).LinePen);
|
||||||
CbLineSerLinePenstyle.Cosmetic := TLineSeries(ser).LinePen.Cosmetic;
|
CbLineSerLinePenStyle.Cosmetic := TLineSeries(ser).LinePen.Cosmetic;
|
||||||
CbLineSerLinePenStyle.PenStyle := TLineSeries(ser).LinePen.Style;
|
CbLineSerLinePenStyle.PenStyle := TLineSeries(ser).LinePen.Style;
|
||||||
CbLineSerLinePenWidth.PenWidth := TLineSeries(ser).LinePen.Width;
|
CbLineSerLinePenWidth.PenWidth := TLineSeries(ser).LinePen.Width;
|
||||||
CbLineSerPenColor.Selected := TLineSeries(ser).LinePen.Color;
|
CbLineSerLinePenColor.Selected := TLineSeries(ser).LinePen.Color;
|
||||||
|
|
||||||
|
inc(FLockChanges);
|
||||||
|
CbShowPoints.Checked := TLineSeries(ser).ShowPoints;
|
||||||
|
EdLineSerPointerSize.Value := TLineSeries(ser).Pointer.HorizSize;
|
||||||
CbLineSerPointerStyle.PointerStyle := TLineSeries(ser).Pointer.Style;
|
CbLineSerPointerStyle.PointerStyle := TLineSeries(ser).Pointer.Style;
|
||||||
CbLineSerPointerBorderColor.Selected := TLineSeries(ser).Pointer.Pen.Color;
|
CbLineSerPointerBorderColor.Selected := TLineSeries(ser).Pointer.Pen.Color;
|
||||||
CblineSerPointerBrushColor.Selected := TLineSeries(ser).Pointer.Brush.Color;
|
CblineSerPointerBrushColor.Selected := TLineSeries(ser).Pointer.Brush.Color;
|
||||||
EdLineSerPointerSize.Value := TLineSeries(ser).Pointer.HorizSize;
|
dec(FLockChanges); // Not clear why this is necessary - should work without it
|
||||||
|
// LinePointerChange(nil);
|
||||||
end
|
end
|
||||||
else if ser is TBarSeries then begin
|
else
|
||||||
|
if ser is TBarSeries then begin
|
||||||
Notebook1.PageIndex := 1;
|
Notebook1.PageIndex := 1;
|
||||||
CbBarSerPenStyle.PenStyle := TBarSeries(ser).BarPen.Style;
|
CbBarSerPenStyle.PenStyle := TBarSeries(ser).BarPen.Style;
|
||||||
CbBarSerPenWidth.PenWidth := TBarseries(ser).BarPen.Width;
|
CbBarSerPenWidth.PenWidth := TBarseries(ser).BarPen.Width;
|
||||||
CbBarSerPenColor.Selected := TBarSeries(ser).BarPen.Color;
|
CbBarSerPenColor.Selected := TBarSeries(ser).BarPen.Color;
|
||||||
CbBarSerBrushColor.Selected := TBarSeries(ser).BarBrush.Color;
|
CbBarSerBrushColor.Selected := TBarSeries(ser).BarBrush.Color;
|
||||||
CbBarSerBrushStyle.BrushStyle := TBarSeries(ser).BarBrush.Style;
|
CbBarSerBrushStyle.BrushStyle := TBarSeries(ser).BarBrush.Style;
|
||||||
end else if ser is TAreaSeries then begin
|
end
|
||||||
|
else if ser is TAreaSeries then begin
|
||||||
Notebook1.PageIndex := 2;
|
Notebook1.PageIndex := 2;
|
||||||
CbAreaSerBrushColor.Selected := TAreaseries(ser).AreaBrush.Color;
|
CbAreaSerBrushColor.Selected := TAreaSeries(ser).AreaBrush.Color;
|
||||||
CbAreaSerBrushStyle.BrushStyle := TAreaSeries(ser).AreaBrush.Style;
|
CbAreaSerBrushStyle.BrushStyle := TAreaSeries(ser).AreaBrush.Style;
|
||||||
CbAreaSerContourStyle.PenStyle := TAreaSeries(ser).AreaContourPen.Style;
|
CbAreaSerContourStyle.PenStyle := TAreaSeries(ser).AreaContourPen.Style;
|
||||||
CbAreaSerContourWidth.PenWidth := TAreaSeries(ser).AreaContourPen.Width;
|
CbAreaSerContourWidth.PenWidth := TAreaSeries(ser).AreaContourPen.Width;
|
||||||
@ -365,6 +284,7 @@ procedure TForm1.ChartToolset1DataPointClickTool1PointClick(ATool: TChartTool;
|
|||||||
var
|
var
|
||||||
ser: TChartSeries;
|
ser: TChartSeries;
|
||||||
begin
|
begin
|
||||||
|
Unused(APoint);
|
||||||
ser := TChartSeries(TDataPointClickTool(ATool).Series);
|
ser := TChartSeries(TDataPointClickTool(ATool).Series);
|
||||||
if ser <> nil then begin
|
if ser <> nil then begin
|
||||||
ChartListbox1.ItemIndex := ChartListbox1.FindSeriesIndex(ser);
|
ChartListbox1.ItemIndex := ChartListbox1.FindSeriesIndex(ser);
|
||||||
@ -372,16 +292,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.EdLineSerPointerSizeChange(Sender: TObject);
|
|
||||||
var
|
|
||||||
ser: TLineSeries;
|
|
||||||
begin
|
|
||||||
ser := ChartListbox1.Series[ChartListbox1.ItemIndex] as TLineSeries;
|
|
||||||
ser.Pointer.HorizSize := EdLineSerPointerSize.Value;
|
|
||||||
ser.Pointer.VertSize := EdLineSerPointerSize.Value;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TForm1.FormShow(Sender: TObject);
|
procedure TForm1.FormShow(Sender: TObject);
|
||||||
|
const
|
||||||
|
DEFAULT_PATTERN = '2|1|1|1|1|1|1|1';
|
||||||
var
|
var
|
||||||
bmp: TBitmap;
|
bmp: TBitmap;
|
||||||
begin
|
begin
|
||||||
@ -397,6 +310,25 @@ begin
|
|||||||
finally
|
finally
|
||||||
bmp.Free;
|
bmp.Free;
|
||||||
end;
|
end;
|
||||||
|
{
|
||||||
|
bmp := TBitmap.Create;
|
||||||
|
try
|
||||||
|
bmp.SetSize(2, 2);
|
||||||
|
bmp.Canvas.Pixels[0, 0] := clWhite;
|
||||||
|
bmp.Canvas.Pixels[1, 0] := clBlack;
|
||||||
|
bmp.Canvas.Pixels[0, 1] := clBlack;
|
||||||
|
bmp.Canvas.Pixels[1, 1] := clWhite;
|
||||||
|
finally
|
||||||
|
CbBarSerBrushStyle.BrushBitmap.Assign(bmp);
|
||||||
|
CbAreaserBrushStyle.BrushBitmap.Assign(bmp);
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prepare user-defined line pattern
|
||||||
|
CbLineSerLinePenStyle.PenPattern := DEFAULT_PATTERN;
|
||||||
|
CbBarSerPenStyle.PenPattern := DEFAULT_PATTERN;
|
||||||
|
CbAreaSerLinesStyle.PenPattern := DEFAULT_PATTERN;
|
||||||
|
CbAreaSerContourStyle.PenPattern := DEFAULT_PATTERN;
|
||||||
|
|
||||||
ChartListbox1.ItemIndex := 0;
|
ChartListbox1.ItemIndex := 0;
|
||||||
ChartListbox1Click(nil);
|
ChartListbox1Click(nil);
|
||||||
|
@ -5,14 +5,22 @@ interface
|
|||||||
uses
|
uses
|
||||||
SysUtils, Graphics, Classes, Controls, StdCtrls, TATypes, TAGraph;
|
SysUtils, Graphics, Classes, Controls, StdCtrls, TATypes, TAGraph;
|
||||||
|
|
||||||
|
type
|
||||||
|
TChartComboMode = (ccmPointerStyle, ccmPenStyle, ccmPenWidth, ccmBrushStyle);
|
||||||
|
|
||||||
|
TChartComboOptions = set of (
|
||||||
|
ccoNames, // Show item names in combo
|
||||||
|
ccoPatternBrush, // Include bsPattern item in brush style mode
|
||||||
|
ccoImageBrush, // Include bsImage item in brush style mode
|
||||||
|
ccoPatternPen); // Include psPattern item in pen style mode
|
||||||
|
|
||||||
const
|
const
|
||||||
DEFAULT_POINTER_STYLE = psCircle;
|
DEFAULT_POINTER_STYLE = psCircle;
|
||||||
DEFAULT_SYMBOL_WIDTH = 40;
|
DEFAULT_SYMBOL_WIDTH = 40;
|
||||||
DEFAULT_DROPDOWN_COUNT = 24;
|
DEFAULT_DROPDOWN_COUNT = 24;
|
||||||
|
DEFAULT_OPTIONS = [ccoNames, ccoPatternBrush, ccoPatternPen];
|
||||||
|
|
||||||
type
|
type
|
||||||
TChartComboMode = (ccmPointerStyle, ccmPenStyle, ccmPenWidth, ccmBrushStyle);
|
|
||||||
|
|
||||||
TChartComboBox = class(TCustomComboBox)
|
TChartComboBox = class(TCustomComboBox)
|
||||||
private
|
private
|
||||||
FAlignment: TAlignment;
|
FAlignment: TAlignment;
|
||||||
@ -29,7 +37,7 @@ type
|
|||||||
FCosmetic: Boolean;
|
FCosmetic: Boolean;
|
||||||
FLockItemIndex: Integer;
|
FLockItemIndex: Integer;
|
||||||
FMode: TChartComboMode;
|
FMode: TChartComboMode;
|
||||||
FShowNames: Boolean;
|
FOptions: TChartComboOptions;
|
||||||
FSymbolWidth: Integer;
|
FSymbolWidth: Integer;
|
||||||
function GetPenPattern: String;
|
function GetPenPattern: String;
|
||||||
procedure SetAlignment(const AValue: TAlignment);
|
procedure SetAlignment(const AValue: TAlignment);
|
||||||
@ -38,13 +46,13 @@ type
|
|||||||
procedure SetCosmetic(const AValue: Boolean);
|
procedure SetCosmetic(const AValue: Boolean);
|
||||||
procedure SetMaxPenWidth(const AValue: Integer);
|
procedure SetMaxPenWidth(const AValue: Integer);
|
||||||
procedure SetMode(const AValue: TChartComboMode);
|
procedure SetMode(const AValue: TChartComboMode);
|
||||||
|
procedure SetOptions(const AValue: TChartComboOptions);
|
||||||
procedure SetPenColor(const AValue: TColor);
|
procedure SetPenColor(const AValue: TColor);
|
||||||
procedure SetPenPattern(const AValue: String); overload;
|
procedure SetPenPattern(const AValue: String); overload;
|
||||||
procedure SetSelectedBrushStyle(const AValue: TBrushStyle);
|
procedure SetSelectedBrushStyle(const AValue: TBrushStyle);
|
||||||
procedure SetSelectedPenStyle(const AValue: TPenStyle);
|
procedure SetSelectedPenStyle(const AValue: TPenStyle);
|
||||||
procedure SetSelectedPenWidth(const AValue: Integer);
|
procedure SetSelectedPenWidth(const AValue: Integer);
|
||||||
procedure SetSelectedPointerStyle(const AValue: TSeriesPointerStyle);
|
procedure SetSelectedPointerStyle(const AValue: TSeriesPointerStyle);
|
||||||
procedure SetShowNames(const AValue: Boolean);
|
|
||||||
procedure SetSymbolWidth(const AValue: Integer);
|
procedure SetSymbolWidth(const AValue: Integer);
|
||||||
protected
|
protected
|
||||||
procedure Change; override;
|
procedure Change; override;
|
||||||
@ -73,12 +81,13 @@ type
|
|||||||
property Cosmetic: Boolean read FCosmetic write SetCosmetic default true;
|
property Cosmetic: Boolean read FCosmetic write SetCosmetic default true;
|
||||||
property MaxPenWidth: Integer read FMaxPenWidth write SetMaxPenWidth default 5;
|
property MaxPenWidth: Integer read FMaxPenWidth write SetMaxPenWidth default 5;
|
||||||
property Mode: TChartComboMode read FMode write SetMode default ccmPenStyle;
|
property Mode: TChartComboMode read FMode write SetMode default ccmPenStyle;
|
||||||
|
property Options: TChartComboOptions read FOptions write SetOptions default DEFAULT_OPTIONS;
|
||||||
property PenPattern: string read GetPenPattern write SetPenPattern;
|
property PenPattern: string read GetPenPattern write SetPenPattern;
|
||||||
property PenColor: TColor read FPenColor write SetPenColor default clBlack;
|
property PenColor: TColor read FPenColor write SetPenColor default clBlack;
|
||||||
property PenStyle: TPenStyle read FPenStyle write SetSelectedPenStyle default psSolid;
|
property PenStyle: TPenStyle read FPenStyle write SetSelectedPenStyle default psSolid;
|
||||||
property PenWidth: Integer read FPenWidth write SetSelectedPenWidth default 1;
|
property PenWidth: Integer read FPenWidth write SetSelectedPenWidth default 1;
|
||||||
property PointerStyle: TSeriesPointerStyle read FPointerStyle write SetSelectedPointerStyle default DEFAULT_POINTER_STYLE;
|
property PointerStyle: TSeriesPointerStyle read FPointerStyle write SetSelectedPointerStyle default DEFAULT_POINTER_STYLE;
|
||||||
property ShowNames: Boolean read FShowNames write SetShowNames default true;
|
// property ShowNames: Boolean read FShowNames write SetShowNames default true;
|
||||||
property SymbolWidth: Integer read FSymbolWidth write SetSymbolWidth default DEFAULT_SYMBOL_WIDTH;
|
property SymbolWidth: Integer read FSymbolWidth write SetSymbolWidth default DEFAULT_SYMBOL_WIDTH;
|
||||||
|
|
||||||
property Align;
|
property Align;
|
||||||
@ -213,270 +222,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(*
|
|
||||||
{ TSeriesPointerStyleCombobox }
|
|
||||||
|
|
||||||
constructor TSeriesPointerStyleCombobox.Create(AOwner:TComponent);
|
|
||||||
begin
|
|
||||||
inherited Create(AOwner);
|
|
||||||
Style := csOwnerDrawFixed;
|
|
||||||
DropdownCount := DEFAULT_DROPDOWN_COUNT;
|
|
||||||
ReadOnly := true;
|
|
||||||
FSymbolBorderColor := clBlack;
|
|
||||||
FSymbolFillColor := clWhite;
|
|
||||||
FShowNames := true;
|
|
||||||
FAlignment := taLeftJustify;
|
|
||||||
FSelected := DEFAULT_POINTER_STYLE;
|
|
||||||
GetItems;
|
|
||||||
Caption := GetSymbolName(FSelected);
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TSeriesPointerStyleCombobox.Destroy;
|
|
||||||
begin
|
|
||||||
DestroyBitmaps;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.CreateBitmaps(AWidth, AHeight: Integer);
|
|
||||||
var
|
|
||||||
ps: TSeriesPointerStyle;
|
|
||||||
chart: TChart;
|
|
||||||
id: IChartDrawer;
|
|
||||||
series: TLineSeries;
|
|
||||||
legItems: TChartLegendItems;
|
|
||||||
begin
|
|
||||||
DestroyBitmaps;
|
|
||||||
|
|
||||||
chart := TChart.Create(nil);
|
|
||||||
try
|
|
||||||
for ps in TSeriesPointerStyle do begin
|
|
||||||
FBitmaps[ps] := TBitmap.Create;
|
|
||||||
FBitmaps[ps].Transparent := true;
|
|
||||||
FBitmaps[ps].TransparentColor := RgbToColor(254,254,254);
|
|
||||||
FBitmaps[ps].SetSize(AWidth, AHeight);
|
|
||||||
FBitmaps[ps].Canvas.Brush.Color := FBitmaps[ps].TransparentColor;
|
|
||||||
FBitmaps[ps].Canvas.FillRect(0, 0, AWidth, AHeight);
|
|
||||||
|
|
||||||
series := TLineSeries.Create(chart);
|
|
||||||
try
|
|
||||||
with series do begin
|
|
||||||
Pointer.Style := ps;
|
|
||||||
Pointer.Brush.Color := FSymbolFillColor;
|
|
||||||
Pointer.Pen.Color := FSymbolBorderColor;
|
|
||||||
Pointer.HorizSize := Min(AWidth, AHeight);
|
|
||||||
Pointer.VertSize := Pointer.HorizSize;
|
|
||||||
ShowPoints := true;
|
|
||||||
LineType := ltNone;
|
|
||||||
end;
|
|
||||||
chart.AddSeries(series);
|
|
||||||
legitems := TChartLegendItems.Create;
|
|
||||||
try
|
|
||||||
series.GetSingleLegendItem(legItems);
|
|
||||||
id := TCanvasDrawer.Create(FBitmaps[ps].Canvas);
|
|
||||||
id.Pen := Chart.Legend.SymbolFrame;
|
|
||||||
legItems[0].Draw(id, Rect(0, 0, AWidth-1, AHeight-1));
|
|
||||||
finally
|
|
||||||
legitems.Free;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
series.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
chart.Free;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.DestroyBitmaps;
|
|
||||||
var
|
|
||||||
ps: TSeriesPointerStyle;
|
|
||||||
begin
|
|
||||||
for ps in TSeriesPointerStyle do
|
|
||||||
FreeAndNil(FBitmaps[ps]);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.DrawItem(AIndex: Integer; ARect: TRect;
|
|
||||||
AState: TOwnerDrawState);
|
|
||||||
const
|
|
||||||
MARGIN = 2;
|
|
||||||
var
|
|
||||||
symRect: TRect;
|
|
||||||
symheight : integer;
|
|
||||||
symwidth: Integer;
|
|
||||||
txt: string;
|
|
||||||
ps: TSeriesPointerStyle;
|
|
||||||
ts: TTextStyle;
|
|
||||||
alignmnt: TAlignment;
|
|
||||||
begin
|
|
||||||
SymRect := ARect;
|
|
||||||
inc(SymRect.Top, MARGIN);
|
|
||||||
dec(SymRect.Bottom, MARGIN);
|
|
||||||
symheight := SymRect.Bottom - SymRect.Top;
|
|
||||||
symwidth := symheight * 6 div 4; // see: TLegendItemLinePointer.Draw in TALagend
|
|
||||||
if (BiDiMode <> bdLeftToRight) then
|
|
||||||
case FAlignment of
|
|
||||||
taLeftJustify : alignmnt := taRightJustify;
|
|
||||||
taCenter : alignmnt := taCenter;
|
|
||||||
taRightJustify: alignmnt := taLeftJustify
|
|
||||||
end
|
|
||||||
else
|
|
||||||
alignmnt := FAlignment;
|
|
||||||
case alignmnt of
|
|
||||||
taLeftJustify : ;
|
|
||||||
taCenter : SymRect.Left := (ARect.Left + ARect.Right - symwidth) div 2;
|
|
||||||
taRightJustify : SymRect.Left := ARect.Right - MARGIN - symwidth;
|
|
||||||
end;
|
|
||||||
SymRect.Right := SymRect.Left + symwidth;
|
|
||||||
|
|
||||||
with Canvas do begin
|
|
||||||
if odSelected in AState then begin
|
|
||||||
Brush.Color := clHighlight;
|
|
||||||
Font.Color := clHighlightText;
|
|
||||||
end else begin
|
|
||||||
Brush.Color := Color;
|
|
||||||
Font.Color := clWindowText;
|
|
||||||
end;
|
|
||||||
Brush.Style := bsSolid;
|
|
||||||
FillRect(ARect);
|
|
||||||
|
|
||||||
// Create bitmaps of pointer symbols if they are nil, or if height has changed
|
|
||||||
if (FBitmaps[psCircle] = nil) or (FBitmaps[psCircle].Height <> symheight)
|
|
||||||
then CreateBitmaps(symwidth, symheight);
|
|
||||||
|
|
||||||
Pen.Color := FSymbolBorderColor;
|
|
||||||
Pen.Style := psSolid;
|
|
||||||
Pen.Width := 1;
|
|
||||||
Brush.Color := FSymbolFillColor;
|
|
||||||
ps := GetSymbol(AIndex);
|
|
||||||
Canvas.Draw(SymRect.Left, SymRect.Top, FBitmaps[ps]);
|
|
||||||
|
|
||||||
if FShowNames and (alignmnt <> taCenter) then begin // Note: No text output for taCenter!
|
|
||||||
txt := Items[AIndex];
|
|
||||||
case alignmnt of
|
|
||||||
taLeftJustify : ARect.Left := SymRect.Right + 2 * MARGIN;
|
|
||||||
taRightJustify : ARect.Left := SymRect.Left - 2 * MARGIN - Canvas.TextWidth(txt);
|
|
||||||
end;
|
|
||||||
ts := Canvas.TextStyle;
|
|
||||||
ts.Layout := tlCenter;
|
|
||||||
ts.Opaque := false;
|
|
||||||
ts.EndEllipsis := true;
|
|
||||||
TextRect(ARect, ARect.Left, ARect.Top, txt, ts);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.GetItems;
|
|
||||||
const
|
|
||||||
// Arrange symbols in "nice" order
|
|
||||||
LIST: array[0..19] of TSeriesPointerStyle = (
|
|
||||||
psNone, psRectangle, psCircle, psDiamond,
|
|
||||||
psTriangle, psDownTriangle, psLeftTriangle, psRightTriangle,
|
|
||||||
psHexagon, psFullStar,
|
|
||||||
psStar, psCross, psDiagCross,
|
|
||||||
psLowBracket, psHighBracket, psLeftBracket, psRightBracket,
|
|
||||||
psHorBar, psVertBar, psPoint);
|
|
||||||
var
|
|
||||||
ps: TSeriesPointerStyle;
|
|
||||||
s: String;
|
|
||||||
i: Integer;
|
|
||||||
sel: TSeriesPointerStyle;
|
|
||||||
styleItems: TStrings;
|
|
||||||
begin
|
|
||||||
if inherited Items.Count > 0 then
|
|
||||||
exit;
|
|
||||||
|
|
||||||
sel := FSelected;
|
|
||||||
styleItems := TStringList.Create;
|
|
||||||
try
|
|
||||||
for i:=0 to High(LIST) do begin
|
|
||||||
ps := LIST[i];
|
|
||||||
s := GetSymbolName(ps);
|
|
||||||
if s <> '' then
|
|
||||||
styleItems.AddObject(s, TObject(PtrInt(ps)));
|
|
||||||
end;
|
|
||||||
inherited Items.Assign(styleitems);
|
|
||||||
finally
|
|
||||||
styleItems.Free;
|
|
||||||
SetSelected(sel);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TSeriesPointerStyleCombobox.GetSymbol(AIndex: Integer): TSeriesPointerStyle;
|
|
||||||
begin
|
|
||||||
if AIndex = -1 then
|
|
||||||
Result := psNone
|
|
||||||
else
|
|
||||||
Result := TSeriesPointerStyle(PtrInt(Items.Objects[AIndex]));
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ Is overridden to prevent loss of default selected pointer style when
|
|
||||||
combo is added to a form in designer. }
|
|
||||||
procedure TSeriesPointerStyleCombobox.RealSetText(const AValue: TCaption);
|
|
||||||
var
|
|
||||||
sel: TSeriesPointerStyle;
|
|
||||||
begin
|
|
||||||
sel := FSelected;
|
|
||||||
inherited RealSetText(AValue);
|
|
||||||
SetSelected(sel);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetAlignment(Value:TAlignment);
|
|
||||||
begin
|
|
||||||
if Value <> FAlignment then begin
|
|
||||||
FAlignment := Value;
|
|
||||||
Invalidate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetItemIndex(const AValue: Integer);
|
|
||||||
begin
|
|
||||||
FSelected := GetSymbol(AValue);
|
|
||||||
if AValue = inherited ItemIndex then exit;
|
|
||||||
inherited SetItemIndex(AValue);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetSelected(AValue:TSeriesPointerStyle);
|
|
||||||
var
|
|
||||||
i : integer;
|
|
||||||
begin
|
|
||||||
for i := 0 to Items.Count-1 do begin
|
|
||||||
if GetSymbol(i) = AValue then begin
|
|
||||||
FSelected := AValue;
|
|
||||||
ItemIndex := i;
|
|
||||||
Invalidate;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
ItemIndex := -1;
|
|
||||||
FSelected := psNone;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetShowNames(AValue: boolean);
|
|
||||||
begin
|
|
||||||
if (FShowNames <> AValue) then begin
|
|
||||||
FShowNames := AValue;
|
|
||||||
Invalidate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetSymbolBorderColor(AValue: TColor);
|
|
||||||
begin
|
|
||||||
if FSymbolBorderColor <> AValue then begin
|
|
||||||
FSymbolBorderColor := AValue;
|
|
||||||
DestroyBitmaps;
|
|
||||||
Invalidate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TSeriesPointerStyleCombobox.SetSymbolFillColor(AValue: TColor);
|
|
||||||
begin
|
|
||||||
if FSymbolFillColor <> AValue then begin
|
|
||||||
FSymbolFillColor := AValue;
|
|
||||||
DestroyBitmaps;
|
|
||||||
Invalidate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
*)
|
|
||||||
|
|
||||||
{ TChartComboBox }
|
{ TChartComboBox }
|
||||||
|
|
||||||
@ -498,7 +243,7 @@ begin
|
|||||||
FPenStyle := psSolid;
|
FPenStyle := psSolid;
|
||||||
FPenWidth := 1;
|
FPenWidth := 1;
|
||||||
FMaxPenWidth := 5;
|
FMaxPenWidth := 5;
|
||||||
FShowNames := true;
|
FOptions := DEFAULT_OPTIONS;
|
||||||
FSymbolWidth := DEFAULT_SYMBOL_WIDTH;
|
FSymbolWidth := DEFAULT_SYMBOL_WIDTH;
|
||||||
PopulatePenStyles;
|
PopulatePenStyles;
|
||||||
SetSelectedPenStyle(FPenStyle);
|
SetSelectedPenStyle(FPenStyle);
|
||||||
@ -634,7 +379,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
Canvas.Brush.Color := FBrushColor;
|
Canvas.Brush.Color := FBrushColor;
|
||||||
Canvas.Brush.Style := bs;
|
Canvas.Brush.Style := bs;
|
||||||
if bs = bsImage then
|
if (bs = bsImage) or (bs = bsPattern) then
|
||||||
Canvas.Brush.Bitmap := FBrushBitmap; // AFTER assigning Brush.Style!
|
Canvas.Brush.Bitmap := FBrushBitmap; // AFTER assigning Brush.Style!
|
||||||
Canvas.Pen.Color := clBlack;
|
Canvas.Pen.Color := clBlack;
|
||||||
Canvas.Pen.Style := psSolid;
|
Canvas.Pen.Style := psSolid;
|
||||||
@ -668,7 +413,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if FShowNames and (FAlignment <> taCenter) then begin
|
if (ccoNames in FOptions) and (FAlignment <> taCenter) then begin
|
||||||
ts := Canvas.TextStyle;
|
ts := Canvas.TextStyle;
|
||||||
ts.Layout := tlCenter;
|
ts.Layout := tlCenter;
|
||||||
ts.Opaque := false;
|
ts.Opaque := false;
|
||||||
@ -708,7 +453,8 @@ begin
|
|||||||
if AIndex < 0 then
|
if AIndex < 0 then
|
||||||
Result := psSolid
|
Result := psSolid
|
||||||
else
|
else
|
||||||
Result := TPenStyle(AIndex);
|
// Result := TPenStyle(AIndex);
|
||||||
|
Result := TPenStyle(PtrInt(Items.Objects[AIndex]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TChartComboBox.GetPenWidth(const AIndex: Integer): Integer;
|
function TChartComboBox.GetPenWidth(const AIndex: Integer): Integer;
|
||||||
@ -732,8 +478,13 @@ begin
|
|||||||
Items.BeginUpdate;
|
Items.BeginUpdate;
|
||||||
try
|
try
|
||||||
Items.Clear;
|
Items.Clear;
|
||||||
for bs in TBrushStyle do
|
for bs in TBrushStyle do begin
|
||||||
|
if (bs = bsPattern) and not (ccoPatternBrush in FOptions) then
|
||||||
|
Continue;
|
||||||
|
if (bs = bsImage) and not (ccoImageBrush in FOptions) then
|
||||||
|
Continue;
|
||||||
Items.Add(GetBrushStylename(bs));
|
Items.Add(GetBrushStylename(bs));
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
Items.EndUpdate;
|
Items.EndUpdate;
|
||||||
dec(FLockItemIndex);
|
dec(FLockItemIndex);
|
||||||
@ -748,8 +499,11 @@ begin
|
|||||||
Items.BeginUpdate;
|
Items.BeginUpdate;
|
||||||
try
|
try
|
||||||
Items.Clear;
|
Items.Clear;
|
||||||
for ps in TPenStyle do
|
for ps in TPenStyle do begin
|
||||||
Items.Add(GetPenStyleName(ps));
|
if (ps = psPattern) and not (ccoPatternPen in FOptions) then
|
||||||
|
Continue;
|
||||||
|
Items.AddObject(GetPenStyleName(ps), TObject(PtrInt(ps)));
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
Items.EndUpdate;
|
Items.EndUpdate;
|
||||||
dec(FLockItemIndex);
|
dec(FLockItemIndex);
|
||||||
@ -916,6 +670,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChartComboBox.SetOptions(const AValue: TChartComboOptions);
|
||||||
|
begin
|
||||||
|
if FOptions = AValue then exit;
|
||||||
|
FOptions := AValue;
|
||||||
|
case FMode of
|
||||||
|
ccmBrushStyle : PopulateBrushStyles;
|
||||||
|
ccmPenStyle : PopulatePenStyles;
|
||||||
|
ccmPenWidth : PopulatePenWidths;
|
||||||
|
ccmPointerStyle : PopulatePointerStyles;
|
||||||
|
end;
|
||||||
|
Invalidate;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChartComboBox.SetPenPattern(const AValue: String);
|
procedure TChartComboBox.SetPenPattern(const AValue: String);
|
||||||
var
|
var
|
||||||
L: TStrings;
|
L: TStrings;
|
||||||
@ -959,8 +726,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChartComboBox.SetSelectedPenStyle(const AValue: TPenStyle);
|
procedure TChartComboBox.SetSelectedPenStyle(const AValue: TPenStyle);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
ItemIndex := EnsureRange(ord(AValue), 0, Items.Count - 1);
|
for i := 0 to Items.Count - 1 do
|
||||||
|
if GetPenStyle(i) = AValue then begin
|
||||||
|
ItemIndex := i;
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
ItemIndex := -1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChartComboBox.SetSelectedPenWidth(const AValue: Integer);
|
procedure TChartComboBox.SetSelectedPenWidth(const AValue: Integer);
|
||||||
@ -984,13 +758,6 @@ begin
|
|||||||
FPointerStyle := psNone;
|
FPointerStyle := psNone;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChartComboBox.SetShowNames(const AValue: Boolean);
|
|
||||||
begin
|
|
||||||
if FShowNames = AValue then exit;
|
|
||||||
FShowNames := AValue;
|
|
||||||
Invalidate;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TChartComboBox.SetSymbolWidth(const AValue: Integer);
|
procedure TChartComboBox.SetSymbolWidth(const AValue: Integer);
|
||||||
begin
|
begin
|
||||||
if FSymbolWidth = AValue then exit;
|
if FSymbolWidth = AValue then exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user