mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 22:36:17 +02:00
TAChart: Refactor charteditor demo.
git-svn-id: trunk@65025 -
This commit is contained in:
parent
a2f76da804
commit
67a1d35c1a
@ -1,12 +1,13 @@
|
||||
object AxisEditor: TAxisEditor
|
||||
Left = 662
|
||||
Height = 487
|
||||
Top = 270
|
||||
Width = 548
|
||||
Left = 931
|
||||
Height = 524
|
||||
Top = 284
|
||||
Width = 535
|
||||
ActiveControl = cbShow
|
||||
Caption = 'Axis title editor'
|
||||
ClientHeight = 487
|
||||
ClientWidth = 548
|
||||
ClientHeight = 524
|
||||
ClientWidth = 535
|
||||
OnActivate = FormActivate
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
@ -16,29 +17,29 @@ object AxisEditor: TAxisEditor
|
||||
object PageControl: TPageControl
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 408
|
||||
Height = 445
|
||||
Top = 33
|
||||
Width = 536
|
||||
ActivePage = pgTitle
|
||||
Width = 523
|
||||
ActivePage = pgGrid
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Right = 6
|
||||
TabIndex = 0
|
||||
TabIndex = 2
|
||||
TabOrder = 1
|
||||
object pgTitle: TTabSheet
|
||||
Caption = 'Title'
|
||||
ClientHeight = 380
|
||||
ClientWidth = 528
|
||||
ClientHeight = 417
|
||||
ClientWidth = 515
|
||||
object TitleMemoPanel: TPanel
|
||||
Left = 6
|
||||
Height = 159
|
||||
Top = 6
|
||||
Width = 516
|
||||
Left = 8
|
||||
Height = 190
|
||||
Top = 8
|
||||
Width = 499
|
||||
Align = alClient
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.Around = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 159
|
||||
ClientWidth = 516
|
||||
ClientHeight = 190
|
||||
ClientWidth = 499
|
||||
TabOrder = 0
|
||||
object lblTitle: TLabel
|
||||
AnchorSideLeft.Control = TitleMemoPanel
|
||||
@ -60,9 +61,9 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideBottom.Control = TitleMemoPanel
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 138
|
||||
Height = 169
|
||||
Top = 21
|
||||
Width = 516
|
||||
Width = 499
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Top = 4
|
||||
OnChange = mmoTitleChange
|
||||
@ -74,7 +75,7 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = TitleMemoPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 462
|
||||
Left = 445
|
||||
Height = 19
|
||||
Top = 0
|
||||
Width = 54
|
||||
@ -88,15 +89,15 @@ object AxisEditor: TAxisEditor
|
||||
end
|
||||
end
|
||||
object TitleParamsPanel: TPanel
|
||||
Left = 6
|
||||
Left = 8
|
||||
Height = 203
|
||||
Top = 171
|
||||
Width = 516
|
||||
Top = 206
|
||||
Width = 499
|
||||
Align = alBottom
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.Around = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 203
|
||||
ClientWidth = 516
|
||||
ClientWidth = 499
|
||||
TabOrder = 1
|
||||
object rgTitleAlignment: TRadioGroup
|
||||
AnchorSideLeft.Control = TitleParamsPanel
|
||||
@ -106,12 +107,13 @@ object AxisEditor: TAxisEditor
|
||||
Left = 0
|
||||
Height = 51
|
||||
Top = 0
|
||||
Width = 249
|
||||
Width = 240
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoFill = True
|
||||
BorderSpacing.InnerBorder = 6
|
||||
AutoSize = True
|
||||
Caption = 'Alignment'
|
||||
ChildSizing.LeftRightSpacing = 6
|
||||
ChildSizing.LeftRightSpacing = 16
|
||||
ChildSizing.TopBottomSpacing = 6
|
||||
ChildSizing.HorizontalSpacing = 16
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.EnlargeVertical = crsHomogenousChildResize
|
||||
@ -120,7 +122,7 @@ object AxisEditor: TAxisEditor
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 3
|
||||
ClientHeight = 31
|
||||
ClientWidth = 245
|
||||
ClientWidth = 236
|
||||
Columns = 3
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
@ -139,38 +141,11 @@ object AxisEditor: TAxisEditor
|
||||
Left = 0
|
||||
Height = 104
|
||||
Top = 59
|
||||
Width = 249
|
||||
Width = 240
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Font'
|
||||
ClientHeight = 84
|
||||
ClientWidth = 245
|
||||
Caption = 'gbTitleFont'
|
||||
TabOrder = 1
|
||||
inline TitleFontFrame: TFontFrame
|
||||
Left = 8
|
||||
Height = 76
|
||||
Width = 229
|
||||
Align = alClient
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 76
|
||||
ClientWidth = 229
|
||||
inherited cmbFontName: TComboBox
|
||||
AnchorSideLeft.Control = TitleFontFrame
|
||||
AnchorSideTop.Control = TitleFontFrame
|
||||
AnchorSideRight.Control = TitleFontFrame
|
||||
Width = 229
|
||||
end
|
||||
inherited cbFontColor: TColorButton
|
||||
AnchorSideRight.Control = TitleFontFrame
|
||||
Left = 197
|
||||
end
|
||||
inherited cbBold: TCheckBox
|
||||
AnchorSideLeft.Control = TitleFontFrame
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbTitleShapeBrushPenMargins: TGroupBox
|
||||
AnchorSideLeft.Control = Bevel1
|
||||
@ -178,59 +153,19 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideTop.Control = rgTitleAlignment
|
||||
AnchorSideRight.Control = TitleParamsPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = TitleParamsPanel
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 267
|
||||
Height = 203
|
||||
Left = 258
|
||||
Height = 163
|
||||
Top = 0
|
||||
Width = 249
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
Caption = 'Title background'
|
||||
ClientHeight = 183
|
||||
ClientWidth = 245
|
||||
Width = 241
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Caption = 'gbTitleShapeBrushPenMargins'
|
||||
TabOrder = 3
|
||||
inline TitleShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
Left = 8
|
||||
Height = 175
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 175
|
||||
inherited cmbShape: TComboBox
|
||||
AnchorSideLeft.Control = TitleShapeBrushPenMarginsFrame
|
||||
AnchorSideTop.Control = TitleShapeBrushPenMarginsFrame
|
||||
AnchorSideRight.Control = TitleShapeBrushPenMarginsFrame
|
||||
end
|
||||
inherited gbBackground: TGroupBox
|
||||
AnchorSideLeft.Control = TitleShapeBrushPenMarginsFrame
|
||||
end
|
||||
inherited gbBorder: TGroupBox
|
||||
AnchorSideRight.Control = TitleShapeBrushPenMarginsFrame
|
||||
end
|
||||
inherited gbMargins: TGroupBox
|
||||
AnchorSideBottom.Control = TitleShapeBrushPenMarginsFrame
|
||||
Height = 83
|
||||
ClientHeight = 63
|
||||
inherited seBottomMargin: TSpinEdit
|
||||
Top = 32
|
||||
end
|
||||
inherited seLeftMargin: TSpinEdit
|
||||
Top = 16
|
||||
end
|
||||
inherited seRightMargin: TSpinEdit
|
||||
Top = 16
|
||||
end
|
||||
inherited Bevel2: TBevel
|
||||
Height = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
AnchorSideLeft.Control = TitleParamsPanel
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
Left = 249
|
||||
Left = 240
|
||||
Height = 50
|
||||
Top = 32
|
||||
Width = 18
|
||||
@ -242,21 +177,24 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 175
|
||||
Top = 183
|
||||
Width = 45
|
||||
Caption = 'Distance'
|
||||
FocusControl = seTitleDistance
|
||||
ParentColor = False
|
||||
end
|
||||
object seTitleDistance: TSpinEdit
|
||||
AnchorSideLeft.Control = lblTitleDistance
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbTitleFont
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 72
|
||||
Left = 53
|
||||
Height = 23
|
||||
Top = 171
|
||||
Top = 179
|
||||
Width = 58
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 16
|
||||
OnChange = seTitleDistanceChange
|
||||
TabOrder = 2
|
||||
end
|
||||
@ -264,23 +202,23 @@ object AxisEditor: TAxisEditor
|
||||
end
|
||||
object pgLabels: TTabSheet
|
||||
Caption = 'Labels'
|
||||
ClientHeight = 380
|
||||
ClientWidth = 540
|
||||
ClientHeight = 417
|
||||
ClientWidth = 515
|
||||
object gbAxisRange: TGroupBox
|
||||
AnchorSideLeft.Control = pgLabels
|
||||
AnchorSideTop.Control = pgLabels
|
||||
AnchorSideRight.Control = Bevel2
|
||||
Left = 6
|
||||
Left = 8
|
||||
Height = 150
|
||||
Top = 6
|
||||
Width = 256
|
||||
Top = 8
|
||||
Width = 241
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Axis limits'
|
||||
ClientHeight = 130
|
||||
ClientWidth = 252
|
||||
ClientWidth = 237
|
||||
TabOrder = 0
|
||||
object lblAutomatic: TLabel
|
||||
AnchorSideLeft.Control = gbAxisRange
|
||||
@ -330,7 +268,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 129
|
||||
Height = 23
|
||||
Top = 29
|
||||
Width = 99
|
||||
Width = 84
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 24
|
||||
@ -348,7 +286,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 129
|
||||
Height = 23
|
||||
Top = 60
|
||||
Width = 99
|
||||
Width = 84
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
@ -373,136 +311,49 @@ object AxisEditor: TAxisEditor
|
||||
object gbLabelFont: TGroupBox
|
||||
AnchorSideLeft.Control = Bevel2
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbAxisRange
|
||||
AnchorSideRight.Control = pgLabels
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 278
|
||||
Left = 265
|
||||
Height = 104
|
||||
Top = 8
|
||||
Width = 254
|
||||
Width = 242
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Label font'
|
||||
ClientHeight = 84
|
||||
ClientWidth = 250
|
||||
Caption = 'gbLabelFont'
|
||||
TabOrder = 3
|
||||
inline LabelFontFrame: TFontFrame
|
||||
Left = 8
|
||||
Height = 84
|
||||
Width = 234
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
ClientHeight = 84
|
||||
ClientWidth = 234
|
||||
inherited cmbFontName: TComboBox
|
||||
AnchorSideLeft.Control = LabelFontFrame
|
||||
AnchorSideTop.Control = LabelFontFrame
|
||||
AnchorSideRight.Control = LabelFontFrame
|
||||
Width = 234
|
||||
end
|
||||
inherited cbFontColor: TColorButton
|
||||
AnchorSideRight.Control = LabelFontFrame
|
||||
Left = 202
|
||||
end
|
||||
inherited cbBold: TCheckBox
|
||||
AnchorSideLeft.Control = LabelFontFrame
|
||||
BorderSpacing.Bottom = 6
|
||||
end
|
||||
inherited seOrientation: TSpinEdit
|
||||
Alignment = taRightJustify
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbShapeFillBorder: TGroupBox
|
||||
AnchorSideLeft.Control = Bevel2
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
Left = 278
|
||||
Height = 236
|
||||
Top = 136
|
||||
Width = 267
|
||||
Caption = 'Label background'
|
||||
ClientHeight = 216
|
||||
ClientWidth = 263
|
||||
AnchorSideTop.Control = gbLabelFont
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbLabelFont
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 265
|
||||
Height = 266
|
||||
Top = 128
|
||||
Width = 242
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 16
|
||||
Caption = 'gbShapeFillBorder'
|
||||
TabOrder = 4
|
||||
inline LabelShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
Left = 8
|
||||
Height = 208
|
||||
Width = 247
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 208
|
||||
ClientWidth = 247
|
||||
inherited cmbShape: TComboBox
|
||||
AnchorSideLeft.Control = LabelShapeBrushPenMarginsFrame
|
||||
AnchorSideTop.Control = LabelShapeBrushPenMarginsFrame
|
||||
AnchorSideRight.Control = LabelShapeBrushPenMarginsFrame
|
||||
Width = 247
|
||||
end
|
||||
inherited gbBackground: TGroupBox
|
||||
AnchorSideLeft.Control = LabelShapeBrushPenMarginsFrame
|
||||
Width = 116
|
||||
ClientWidth = 112
|
||||
inherited cbFillColor: TColorButton
|
||||
Left = 72
|
||||
end
|
||||
end
|
||||
inherited gbBorder: TGroupBox
|
||||
AnchorSideRight.Control = LabelShapeBrushPenMarginsFrame
|
||||
Left = 131
|
||||
Width = 116
|
||||
ClientWidth = 112
|
||||
inherited cbBorderColor: TColorButton
|
||||
Left = 74
|
||||
end
|
||||
end
|
||||
inherited gbMargins: TGroupBox
|
||||
AnchorSideBottom.Control = LabelShapeBrushPenMarginsFrame
|
||||
Height = 116
|
||||
Width = 247
|
||||
ClientHeight = 96
|
||||
ClientWidth = 243
|
||||
inherited seTopMargin: TSpinEdit
|
||||
Left = 96
|
||||
end
|
||||
inherited seBottomMargin: TSpinEdit
|
||||
Left = 96
|
||||
Top = 65
|
||||
end
|
||||
inherited seLeftMargin: TSpinEdit
|
||||
Left = 38
|
||||
Top = 33
|
||||
end
|
||||
inherited seRightMargin: TSpinEdit
|
||||
Left = 154
|
||||
Top = 33
|
||||
end
|
||||
inherited Bevel2: TBevel
|
||||
Left = 96
|
||||
Height = 34
|
||||
end
|
||||
end
|
||||
inherited Bevel1: TBevel
|
||||
Left = 123
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbLabels: TGroupBox
|
||||
AnchorSideLeft.Control = gbAxisRange
|
||||
AnchorSideTop.Control = gbAxisRange
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Bevel2
|
||||
Left = 6
|
||||
Left = 8
|
||||
Height = 113
|
||||
Top = 166
|
||||
Width = 256
|
||||
Top = 168
|
||||
Width = 241
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Labels'
|
||||
ClientHeight = 93
|
||||
ClientWidth = 252
|
||||
ClientWidth = 237
|
||||
TabOrder = 1
|
||||
object cbLabelsVisible: TCheckBox
|
||||
AnchorSideLeft.Control = gbLabels
|
||||
@ -527,7 +378,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 96
|
||||
Height = 23
|
||||
Top = 27
|
||||
Width = 140
|
||||
Width = 125
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 35
|
||||
BorderSpacing.Top = 6
|
||||
@ -555,8 +406,9 @@ object AxisEditor: TAxisEditor
|
||||
Left = 96
|
||||
Height = 23
|
||||
Top = 58
|
||||
Width = 66
|
||||
Width = 68
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Bottom = 12
|
||||
OnChange = seLabelDistanceChange
|
||||
TabOrder = 2
|
||||
@ -577,7 +429,7 @@ object AxisEditor: TAxisEditor
|
||||
object Bevel2: TBevel
|
||||
AnchorSideLeft.Control = pgLabels
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
Left = 262
|
||||
Left = 249
|
||||
Height = 50
|
||||
Top = 280
|
||||
Width = 16
|
||||
@ -589,25 +441,30 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbLabels
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = gbShapeFillBorder
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 83
|
||||
Top = 289
|
||||
Width = 256
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
Left = 8
|
||||
Height = 88
|
||||
Top = 291
|
||||
Width = 241
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
BorderSpacing.Bottom = 8
|
||||
Caption = 'Ticks'
|
||||
ClientHeight = 63
|
||||
ClientWidth = 252
|
||||
ClientHeight = 68
|
||||
ClientWidth = 237
|
||||
TabOrder = 2
|
||||
object seTickLength: TSpinEdit
|
||||
AnchorSideLeft.Control = lblTickLength
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbTicks
|
||||
Left = 96
|
||||
Left = 99
|
||||
Height = 23
|
||||
Top = 2
|
||||
Width = 66
|
||||
Width = 68
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 16
|
||||
BorderSpacing.Top = 2
|
||||
OnChange = seTickLengthChange
|
||||
TabOrder = 0
|
||||
@ -616,12 +473,14 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideLeft.Control = seTickLength
|
||||
AnchorSideTop.Control = seTickLength
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 96
|
||||
Left = 99
|
||||
Height = 23
|
||||
Top = 33
|
||||
Width = 66
|
||||
Width = 68
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Bottom = 12
|
||||
OnChange = seTickInnerLengthChange
|
||||
TabOrder = 1
|
||||
end
|
||||
@ -650,9 +509,8 @@ object AxisEditor: TAxisEditor
|
||||
end
|
||||
object cbTickColor: TColorButton
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = LabelShapeBrushPenMarginsFrame.gbBackground
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 200
|
||||
Left = 185
|
||||
Height = 25
|
||||
Top = 20
|
||||
Width = 32
|
||||
@ -667,140 +525,72 @@ object AxisEditor: TAxisEditor
|
||||
end
|
||||
object pgGrid: TTabSheet
|
||||
Caption = 'Grid'
|
||||
ClientHeight = 380
|
||||
ClientWidth = 540
|
||||
ClientHeight = 417
|
||||
ClientWidth = 515
|
||||
object gbGrid: TGroupBox
|
||||
AnchorSideLeft.Control = pgGrid
|
||||
AnchorSideTop.Control = pgGrid
|
||||
AnchorSideRight.Control = gbFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 16
|
||||
Left = 8
|
||||
Height = 115
|
||||
Top = 16
|
||||
Width = 280
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 16
|
||||
BorderSpacing.Top = 16
|
||||
Top = 8
|
||||
Width = 277
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Grid lines'
|
||||
ClientHeight = 95
|
||||
ClientWidth = 276
|
||||
ClientWidth = 273
|
||||
Constraints.MinWidth = 277
|
||||
TabOrder = 0
|
||||
object cbGridVisible: TCheckBox
|
||||
AnchorSideLeft.Control = gbGrid
|
||||
AnchorSideTop.Control = gbGrid
|
||||
Left = 16
|
||||
Height = 19
|
||||
Top = 8
|
||||
Width = 54
|
||||
Width = 241
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 16
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Visible'
|
||||
OnChange = cbGridVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
inline GridPenFrame: TPenFrame
|
||||
AnchorSideLeft.Control = cbGridVisible
|
||||
AnchorSideTop.Control = cbGridVisible
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbGrid
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 16
|
||||
Height = 52
|
||||
Top = 35
|
||||
Width = 244
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 16
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 52
|
||||
ClientWidth = 244
|
||||
TabOrder = 1
|
||||
inherited cbPenStyle: TChartComboBox
|
||||
AnchorSideTop.Control = GridPenFrame
|
||||
Width = 160
|
||||
end
|
||||
inherited lblPenStyle: TLabel
|
||||
AnchorSideLeft.Control = GridPenFrame
|
||||
end
|
||||
inherited cbPenWidth: TChartComboBox
|
||||
Width = 160
|
||||
end
|
||||
inherited cbPenColor: TColorButton
|
||||
AnchorSideRight.Control = GridPenFrame
|
||||
Left = 213
|
||||
end
|
||||
inherited Bevel1: TBevel
|
||||
Left = 208
|
||||
end
|
||||
Caption = 'Visible'
|
||||
OnChange = cbGridVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
object pgLine: TTabSheet
|
||||
Caption = 'Line'
|
||||
ClientHeight = 380
|
||||
ClientWidth = 540
|
||||
ClientHeight = 417
|
||||
ClientWidth = 515
|
||||
object gbFrame: TGroupBox
|
||||
AnchorSideLeft.Control = pgLine
|
||||
AnchorSideTop.Control = pgLine
|
||||
AnchorSideRight.Control = gbArrow
|
||||
Left = 8
|
||||
Height = 119
|
||||
Top = 8
|
||||
Width = 288
|
||||
Width = 277
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Frame'
|
||||
Caption = 'gbFrame'
|
||||
ClientHeight = 99
|
||||
ClientWidth = 284
|
||||
ClientWidth = 273
|
||||
TabOrder = 0
|
||||
object cbFrameVisible: TCheckBox
|
||||
AnchorSideLeft.Control = gbFrame
|
||||
AnchorSideTop.Control = gbFrame
|
||||
Left = 16
|
||||
Height = 19
|
||||
Top = 8
|
||||
Width = 54
|
||||
Width = 241
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 16
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Visible'
|
||||
OnChange = cbFrameVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
inline FramePenFrame: TPenFrame
|
||||
AnchorSideLeft.Control = cbFrameVisible
|
||||
AnchorSideTop.Control = cbFrameVisible
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 16
|
||||
Height = 52
|
||||
Top = 35
|
||||
Width = 252
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 16
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 52
|
||||
ClientWidth = 252
|
||||
TabOrder = 1
|
||||
inherited cbPenStyle: TChartComboBox
|
||||
AnchorSideTop.Control = FramePenFrame
|
||||
Width = 167
|
||||
end
|
||||
inherited lblPenStyle: TLabel
|
||||
AnchorSideLeft.Control = FramePenFrame
|
||||
end
|
||||
inherited cbPenWidth: TChartComboBox
|
||||
Width = 167
|
||||
end
|
||||
inherited cbPenColor: TColorButton
|
||||
AnchorSideRight.Control = nil
|
||||
Left = 220
|
||||
Anchors = [akTop]
|
||||
end
|
||||
inherited Bevel1: TBevel
|
||||
Left = 215
|
||||
end
|
||||
Caption = 'Visible'
|
||||
OnChange = cbFrameVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object gbAxisLine: TGroupBox
|
||||
@ -810,78 +600,47 @@ object AxisEditor: TAxisEditor
|
||||
AnchorSideRight.Control = gbFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 115
|
||||
Height = 137
|
||||
Top = 143
|
||||
Width = 288
|
||||
Width = 277
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 16
|
||||
Caption = 'Axis line'
|
||||
ClientHeight = 95
|
||||
ClientWidth = 284
|
||||
Caption = 'gbAxisLine'
|
||||
ClientHeight = 117
|
||||
ClientWidth = 273
|
||||
TabOrder = 1
|
||||
object cbAxisLineVisible: TCheckBox
|
||||
AnchorSideLeft.Control = gbAxisLine
|
||||
AnchorSideTop.Control = gbAxisLine
|
||||
Left = 16
|
||||
Height = 19
|
||||
Top = 8
|
||||
Width = 54
|
||||
Width = 241
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 16
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Visible'
|
||||
OnChange = cbAxisLineVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
inline AxisLinePenFrame: TPenFrame
|
||||
AnchorSideLeft.Control = cbAxisLineVisible
|
||||
AnchorSideTop.Control = cbAxisLineVisible
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbAxisLine
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 16
|
||||
Height = 52
|
||||
Top = 35
|
||||
Width = 252
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 16
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 52
|
||||
ClientWidth = 252
|
||||
TabOrder = 1
|
||||
inherited cbPenStyle: TChartComboBox
|
||||
AnchorSideTop.Control = AxisLinePenFrame
|
||||
Width = 168
|
||||
end
|
||||
inherited lblPenStyle: TLabel
|
||||
AnchorSideLeft.Control = AxisLinePenFrame
|
||||
end
|
||||
inherited cbPenWidth: TChartComboBox
|
||||
Width = 168
|
||||
end
|
||||
inherited cbPenColor: TColorButton
|
||||
AnchorSideRight.Control = AxisLinePenFrame
|
||||
Left = 221
|
||||
end
|
||||
inherited Bevel1: TBevel
|
||||
Left = 216
|
||||
end
|
||||
Caption = 'Visible'
|
||||
OnChange = cbAxisLineVisibleChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object gbArrow: TGroupBox
|
||||
AnchorSideLeft.Control = gbFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbFrame
|
||||
Left = 320
|
||||
AnchorSideRight.Control = pgLine
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 309
|
||||
Height = 156
|
||||
Top = 8
|
||||
Width = 187
|
||||
Width = 200
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 24
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Arrow'
|
||||
ClientHeight = 136
|
||||
ClientWidth = 183
|
||||
ClientWidth = 196
|
||||
TabOrder = 2
|
||||
object cbArrowVisible: TCheckBox
|
||||
AnchorSideLeft.Control = gbArrow
|
||||
@ -937,7 +696,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 101
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 66
|
||||
Width = 79
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Left = 24
|
||||
BorderSpacing.Top = 8
|
||||
@ -954,7 +713,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 101
|
||||
Height = 23
|
||||
Top = 66
|
||||
Width = 66
|
||||
Width = 79
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
@ -970,7 +729,7 @@ object AxisEditor: TAxisEditor
|
||||
Left = 101
|
||||
Height = 23
|
||||
Top = 97
|
||||
Width = 66
|
||||
Width = 79
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
@ -985,12 +744,12 @@ object AxisEditor: TAxisEditor
|
||||
Left = 0
|
||||
Height = 33
|
||||
Top = 0
|
||||
Width = 548
|
||||
Width = 535
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 33
|
||||
ClientWidth = 548
|
||||
ClientWidth = 535
|
||||
TabOrder = 0
|
||||
object cbShow: TCheckBox
|
||||
AnchorSideLeft.Control = PanelTop
|
||||
@ -1012,8 +771,8 @@ object AxisEditor: TAxisEditor
|
||||
object ButtonPanel: TButtonPanel
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 447
|
||||
Width = 536
|
||||
Top = 484
|
||||
Width = 523
|
||||
OKButton.Name = 'OKButton'
|
||||
OKButton.DefaultCaption = True
|
||||
OKButton.OnClick = OKButtonClick
|
||||
|
@ -18,7 +18,6 @@ type
|
||||
|
||||
TAxisEditor = class(TForm)
|
||||
ButtonPanel: TButtonPanel;
|
||||
GridPenFrame: TPenFrame;
|
||||
Bevel1: TBevel;
|
||||
Bevel2: TBevel;
|
||||
Bevel3: TBevel;
|
||||
@ -38,7 +37,6 @@ type
|
||||
cbFrameVisible: TCheckBox;
|
||||
cbArrowVisible: TCheckBox;
|
||||
edLabelFormat: TEdit;
|
||||
AxisLinePenFrame: TPenFrame;
|
||||
gbAxisLine: TGroupBox;
|
||||
gbGrid: TGroupBox;
|
||||
gbTitleFont: TGroupBox;
|
||||
@ -58,7 +56,6 @@ type
|
||||
lblTitleDistance: TLabel;
|
||||
lblTickLength: TLabel;
|
||||
lblTickInnerLength: TLabel;
|
||||
FramePenFrame: TPenFrame;
|
||||
seTickLength: TSpinEdit;
|
||||
seTickInnerLength: TSpinEdit;
|
||||
seTitleDistance: TSpinEdit;
|
||||
@ -67,8 +64,6 @@ type
|
||||
seArrowLength: TSpinEdit;
|
||||
seArrowWidth: TSpinEdit;
|
||||
pgGrid: TTabSheet;
|
||||
TitleFontFrame: TFontFrame;
|
||||
LabelFontFrame: TFontFrame;
|
||||
gbAxisRange: TGroupBox;
|
||||
lblLabelFormat: TLabel;
|
||||
PanelTop: TPanel;
|
||||
@ -77,8 +72,6 @@ type
|
||||
lblAutomatic: TLabel;
|
||||
lblTitle: TLabel;
|
||||
mmoTitle: TMemo;
|
||||
LabelShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame;
|
||||
TitleShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame;
|
||||
TitleMemoPanel: TPanel;
|
||||
PageControl: TPageControl;
|
||||
TitleParamsPanel: TPanel;
|
||||
@ -98,6 +91,7 @@ type
|
||||
procedure cbTickColorColorChanged(Sender: TObject);
|
||||
procedure cbTitleVisibleChange(Sender: TObject);
|
||||
procedure edLabelFormatEditingDone(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
@ -119,13 +113,22 @@ type
|
||||
FAxis: TChartAxis;
|
||||
FOKClicked: Boolean;
|
||||
FSavedAxis: TChartAxis;
|
||||
FTitleFontFrame: TFontFrame;
|
||||
FTitleShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame;
|
||||
FLabelFontFrame: TFontFrame;
|
||||
FGridPenFrame: TPenFrame;
|
||||
FFramePenFrame: TPenFrame;
|
||||
FAxisLinePenFrame: TPenFrame;
|
||||
FLabelShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame;
|
||||
function GetAlignment(AItemIndex: Integer): TAlignment;
|
||||
function GetAlignmentIndex(AValue: TAlignment): Integer;
|
||||
function GetPage: TAxisEditorPage;
|
||||
procedure SetPage(AValue: TAxisEditorPage);
|
||||
procedure ChangedHandler(Sender: TObject);
|
||||
procedure LabelChangedHandler(Sender: TObject);
|
||||
procedure LabelFontChangedHandler(Sender: TObject);
|
||||
procedure LabelShapeChangedHandler(AShape: TChartLabelShape);
|
||||
procedure TitleChangedHandler(Sender: TObject);
|
||||
procedure TitleFontChangedHandler(Sender: TObject);
|
||||
procedure TitleShapeChangedHandler(AShape: TChartLabelShape);
|
||||
protected
|
||||
@ -144,7 +147,7 @@ implementation
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
ceUtils;
|
||||
Math, ceUtils;
|
||||
|
||||
procedure TAxisEditor.cbAutoMaxChange(Sender: TObject);
|
||||
begin
|
||||
@ -214,6 +217,21 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.FormActivate(Sender: TObject);
|
||||
begin
|
||||
Constraints.MinWidth := Max(gbTitleShapeBrushPenMargins.Width, gbTitleFont.Width) * 2 + Bevel1.Width +
|
||||
TitleMemoPanel.BorderSpacing.Around*2 +
|
||||
PageControl.BorderSpacing.Left + PageControl.BorderSpacing.Right;
|
||||
|
||||
Constraints.MinHeight := gbTicks.Top + gbTicks.Height + gbTicks.BorderSpacing.Bottom +
|
||||
PageControl.Height - PageControl.ClientHeight +
|
||||
PanelTop.Height +
|
||||
ButtonPanel.Height + ButtonPanel.BorderSpacing.Around * 2;
|
||||
|
||||
Width := 1; // Enforce constraints
|
||||
Height := 1;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
begin
|
||||
if not CanClose then exit;
|
||||
@ -226,20 +244,91 @@ end;
|
||||
|
||||
procedure TAxisEditor.FormCreate(Sender: TObject);
|
||||
begin
|
||||
// Insert frames at runtime - this makes life much easier...
|
||||
FTitleFontFrame := TFontFrame.Create(self);
|
||||
FTitleFontFrame.Parent := gbTitleFont;
|
||||
FTitleFontFrame.Name := '';
|
||||
FTitleFontFrame.Align := alClient;
|
||||
FTitleFontFrame.BorderSpacing.Left := 8;
|
||||
FTitleFontFrame.BorderSpacing.Right := 8;
|
||||
FTitleFontFrame.OnChange := @TitleFontChangedHandler;
|
||||
gbTitleFont.AutoSize := true;
|
||||
gbTitleFont.Caption := 'Font';
|
||||
|
||||
FTitleShapeBrushPenMarginsFrame := TShapeBrushPenMarginsFrame.Create(self);
|
||||
FTitleShapeBrushPenMarginsFrame.Parent := gbTitleShapeBrushPenMargins;
|
||||
FTitleShapeBrushPenMarginsFrame.Name := '';
|
||||
FTitleShapeBrushPenMarginsFrame.BorderSpacing.Left := 8;
|
||||
FTitleShapeBrushPenMarginsFrame.BorderSpacing.Right := 8;
|
||||
FTitleShapeBrushPenMarginsFrame.BorderSpacing.Bottom := 8;
|
||||
FTitleShapeBrushPenMarginsFrame.OnChange := @TitleChangedHandler;
|
||||
FTitleShapeBrushPenMarginsFrame.OnShapeChange := @TitleShapeChangedHandler;
|
||||
FTitleShapeBrushPenMarginsFrame.AutoSize := true;
|
||||
gbTitleShapeBrushPenMargins.AutoSize := true;
|
||||
gbTitleShapeBrushPenMargins.Caption := 'Title background';
|
||||
|
||||
FLabelFontFrame := TFontFrame.Create(self);
|
||||
FLabelFontFrame.Parent := gbLabelFont;
|
||||
FLabelFontFrame.Name := '';
|
||||
FLabelFontFrame.Align := alClient;
|
||||
FLabelFontFrame.BorderSpacing.Left := 8;
|
||||
FLabelFontFrame.BorderSpacing.Right := 8;
|
||||
FLabelFontFrame.OnChange := @LabelFontChangedHandler;
|
||||
gbLabelFont.AutoSize := true;
|
||||
gbLabelFont.Caption := 'Label font';
|
||||
|
||||
FLabelShapeBrushPenMarginsFrame := TShapeBrushPenMarginsFrame.Create(self);
|
||||
FLabelShapeBrushPenMarginsFrame.Parent := gbShapeFillBorder;
|
||||
FLabelShapeBrushPenMarginsFrame.Name := '';
|
||||
FLabelShapeBrushPenMarginsFrame.Align := alClient;
|
||||
FLabelShapeBrushPenMarginsFrame.BorderSpacing.Left := 8;
|
||||
FLabelShapeBrushPenMarginsFrame.BorderSpacing.Right := 8;
|
||||
FLabelShapeBrushPenMarginsFrame.BorderSpacing.Bottom := 8;
|
||||
FLabelShapeBrushPenMarginsFrame.OnChange := @LabelChangedHandler;
|
||||
FLabelShapeBrushPenMarginsFrame.OnShapeChange := @LabelShapeChangedHandler;
|
||||
FLabelShapeBrushPenMarginsFrame.AutoSize := true;
|
||||
gbShapeFillBorder.AutoSize := true;
|
||||
gbShapeFillBorder.Caption := 'Label background';
|
||||
|
||||
FGridPenFrame := TPenFrame.Create(Self);
|
||||
FGridPenFrame.Parent := gbGrid;
|
||||
FGridPenFrame.Name := '';
|
||||
FGridPenFrame.Align := alTop;
|
||||
FGridPenFrame.Top := 1000;
|
||||
FGridPenFrame.BorderSpacing.Left := 16;
|
||||
FGridPenFrame.BorderSpacing.Right := 16;
|
||||
FGridPenFrame.BorderSpacing.Bottom := 16;
|
||||
FGridPenFrame.OnChange := @ChangedHandler;
|
||||
gbGrid.AutoSize := true;
|
||||
gbGrid.Caption := 'Grid lines';
|
||||
|
||||
FFramePenFrame := TPenFrame.Create(Self);
|
||||
FFramePenFrame.Parent := gbFrame;
|
||||
FFramePenFrame.Name := '';
|
||||
FFramePenFrame.Align := alTop;
|
||||
FFramePenFrame.Top := 1000;
|
||||
FFramePenFrame.BorderSpacing.Left := 16;
|
||||
FFramePenFrame.BorderSpacing.Right := 16;
|
||||
FFramePenFrame.BorderSpacing.Bottom := 16;
|
||||
FFramePenFrame.OnChange := @ChangedHandler;
|
||||
gbFrame.AutoSize := true;
|
||||
gbFrame.Caption := 'Frame';
|
||||
|
||||
FAxisLinePenFrame := TPenFrame.Create(Self);
|
||||
FAxisLinePenFrame.Parent := gbAxisLine;
|
||||
FAxisLinePenFrame.Name := '';
|
||||
FAxisLinePenFrame.Align := alTop;
|
||||
FAxisLinePenFrame.Top := 1000;
|
||||
FAxisLinePenFrame.BorderSpacing.Left := 16;
|
||||
FAxisLinePenFrame.BorderSpacing.Right := 16;
|
||||
FAxisLinePenFrame.BorderSpacing.Bottom := 16;
|
||||
FAxisLinePenFrame.OnChange := @ChangedHandler;
|
||||
gbAxisLine.AutoSize := true;
|
||||
gbAxisLine.Caption := 'Axis line';
|
||||
|
||||
BoldHeaders(self);
|
||||
|
||||
TitleShapeBrushPenMarginsFrame.OnChange := @ChangedHandler;
|
||||
TitleShapeBrushPenMarginsFrame.OnShapeChange := @TitleShapeChangedHandler;
|
||||
TitleFontFrame.OnChange := @TitleFontChangedHandler;
|
||||
|
||||
LabelShapeBrushPenMarginsFrame.OnChange := @ChangedHandler;
|
||||
LabelShapeBrushPenMarginsFrame.OnShapeChange := @LabelShapeChangedHandler;
|
||||
LabelFontFrame.OnChange := @LabelFontChangedHandler;
|
||||
|
||||
FramePenFrame.OnChange := @ChangedHandler;
|
||||
AxisLinePenFrame.OnChange := @ChangedHandler;
|
||||
|
||||
GridPenFrame.OnChange := @ChangedHandler;
|
||||
TitleParamsPanel.AutoSize := true;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.FormDestroy(Sender: TObject);
|
||||
@ -250,6 +339,8 @@ end;
|
||||
procedure TAxisEditor.FormShow(Sender: TObject);
|
||||
begin
|
||||
FOKClicked := false;
|
||||
FTitleShapeBrushPenMarginsFrame.AutoSize := false;
|
||||
FTitleShapeBrushPenMarginsFrame.Align := alClient;
|
||||
end;
|
||||
|
||||
function TAxisEditor.GetAlignment(AItemIndex: Integer): TAlignment;
|
||||
@ -281,6 +372,11 @@ begin
|
||||
ModalResult := mrYesToAll;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.LabelChangedHandler(Sender: TObject);
|
||||
begin
|
||||
GetChart.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.LabelFontChangedHandler(Sender: TObject);
|
||||
begin
|
||||
GetChart.Invalidate;
|
||||
@ -319,11 +415,13 @@ begin
|
||||
// Page "Title"
|
||||
cbTitleVisible.Checked := Axis.Title.Visible;
|
||||
mmoTitle.Lines.Text := Axis.Title.Caption;
|
||||
mmoTitle.Font := Axis.Title.LabelFont;
|
||||
mmoTitle.Font.Orientation := 0; // Memo has horizontal text only
|
||||
with Axis.Title do begin
|
||||
rgTitleAlignment.ItemIndex := GetAlignmentIndex(Alignment);
|
||||
seTitleDistance.Value := Distance;
|
||||
TitleFontFrame.Prepare(LabelFont, true);
|
||||
TitleShapeBrushPenMarginsFrame.Prepare(Shape, LabelBrush, Frame, Margins);
|
||||
FTitleFontFrame.Prepare(LabelFont, true);
|
||||
FTitleShapeBrushPenMarginsFrame.Prepare(Shape, LabelBrush, Frame, Margins);
|
||||
end;
|
||||
|
||||
// Page "Labels"
|
||||
@ -339,18 +437,19 @@ begin
|
||||
seLabelDistance.Value := Distance;
|
||||
cbLabelsVisible.Checked := Visible;
|
||||
edLabelFormat.Text := Format;
|
||||
LabelFontFrame.Prepare(LabelFont, true);
|
||||
LabelShapeBrushPenMarginsFrame.Prepare(Shape, LabelBrush, Frame, Margins);
|
||||
FLabelFontFrame.Prepare(LabelFont, true);
|
||||
FLabelShapeBrushPenMarginsFrame.Prepare(Shape, LabelBrush, Frame, Margins);
|
||||
end;
|
||||
|
||||
// Page "Grid"
|
||||
GridPenFrame.Prepare(FAxis.Grid);
|
||||
cbGridVisible.Checked := FAxis.Grid.EffVisible;
|
||||
FGridPenFrame.Prepare(FAxis.Grid);
|
||||
|
||||
// Page "Line"
|
||||
cbFrameVisible.Checked := GetChart.Frame.EffVisible;
|
||||
FramePenFrame.Prepare(GetChart.Frame);
|
||||
FFramePenFrame.Prepare(GetChart.Frame);
|
||||
cbAxisLineVisible.Checked := FAxis.AxisPen.EffVisible;
|
||||
AxisLinePenFrame.Prepare(FAxis.AxisPen);
|
||||
FAxisLinePenFrame.Prepare(FAxis.AxisPen);
|
||||
cbArrowVisible.Checked := FAxis.Arrow.Visible;
|
||||
seArrowBaseLength.Value := FAxis.Arrow.BaseLength;
|
||||
seArrowLength.Value := FAxis.Arrow.Length;
|
||||
@ -412,9 +511,16 @@ begin
|
||||
PageControl.ActivePageIndex := ord(AValue);
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.TitleChangedHandler(Sender: TObject);
|
||||
begin
|
||||
mmoTitle.Color := FAxis.Title.LabelBrush.Color;
|
||||
GetChart.Invalidate;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.TitleFontChangedHandler(Sender: TObject);
|
||||
begin
|
||||
mmoTitle.Font.Assign(FAxis.Title.LabelFont);
|
||||
mmoTitle.Font.Orientation := 0;
|
||||
end;
|
||||
|
||||
procedure TAxisEditor.TitleShapeChangedHandler(AShape: TChartLabelShape);
|
||||
|
@ -60,7 +60,7 @@ end;
|
||||
procedure TBrushFrame.Prepare(ABrush: TBrush);
|
||||
begin
|
||||
FBrush := ABrush;
|
||||
cbBrushColor.ButtonColor := ABrush.Color;
|
||||
cbBrushColor.ButtonColor := ColorToRGB(ABrush.Color);
|
||||
cbBrushStyle.BrushStyle := ABrush.Style;
|
||||
end;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
object FontFrame: TFontFrame
|
||||
Left = 0
|
||||
Height = 75
|
||||
Height = 84
|
||||
Top = 0
|
||||
Width = 250
|
||||
ClientHeight = 75
|
||||
ClientWidth = 250
|
||||
Width = 301
|
||||
ClientHeight = 84
|
||||
ClientWidth = 301
|
||||
TabOrder = 0
|
||||
DesignLeft = 332
|
||||
DesignTop = 128
|
||||
@ -16,51 +16,20 @@ object FontFrame: TFontFrame
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 0
|
||||
Width = 250
|
||||
Width = 301
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 15
|
||||
OnChange = cmbFontNameChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object cmbFontSize: TComboBox
|
||||
AnchorSideTop.Control = cbFontColor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 30
|
||||
Width = 94
|
||||
BorderSpacing.Right = 6
|
||||
ItemHeight = 15
|
||||
OnChange = cmbFontSizeChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
end
|
||||
object cbFontColor: TColorButton
|
||||
AnchorSideTop.Control = cmbFontName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 218
|
||||
Height = 25
|
||||
Top = 29
|
||||
Width = 32
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
BorderWidth = 2
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
OnColorChanged = cbFontColorColorChanged
|
||||
end
|
||||
object cbBold: TCheckBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = cmbFontSize
|
||||
AnchorSideTop.Control = Panel2
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 59
|
||||
Top = 60
|
||||
Width = 45
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Bottom = 8
|
||||
@ -68,7 +37,7 @@ object FontFrame: TFontFrame
|
||||
Font.Style = [fsBold]
|
||||
OnChange = cbBoldChange
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
TabOrder = 1
|
||||
end
|
||||
object cbItalic: TCheckBox
|
||||
AnchorSideLeft.Control = cbBold
|
||||
@ -76,14 +45,14 @@ object FontFrame: TFontFrame
|
||||
AnchorSideTop.Control = cbBold
|
||||
Left = 53
|
||||
Height = 19
|
||||
Top = 59
|
||||
Top = 60
|
||||
Width = 45
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Italic'
|
||||
Font.Style = [fsItalic]
|
||||
OnChange = cbItalicChange
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
TabOrder = 2
|
||||
end
|
||||
object cbUnderline: TCheckBox
|
||||
AnchorSideLeft.Control = cbItalic
|
||||
@ -92,7 +61,7 @@ object FontFrame: TFontFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 106
|
||||
Height = 19
|
||||
Top = 59
|
||||
Top = 60
|
||||
Width = 78
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 6
|
||||
@ -100,35 +69,98 @@ object FontFrame: TFontFrame
|
||||
Font.Style = [fsUnderline]
|
||||
OnChange = cbUnderlineChange
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
TabOrder = 3
|
||||
end
|
||||
object lblOrientation: TLabel
|
||||
AnchorSideLeft.Control = cmbFontSize
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cbFontColor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 106
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 31
|
||||
BorderSpacing.Left = 12
|
||||
Caption = 'Angle'
|
||||
FocusControl = seOrientation
|
||||
ParentColor = False
|
||||
end
|
||||
object seOrientation: TSpinEdit
|
||||
AnchorSideLeft.Control = lblOrientation
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cbFontColor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 143
|
||||
Height = 23
|
||||
Top = 30
|
||||
Width = 58
|
||||
BorderSpacing.Left = 6
|
||||
MaxValue = 360
|
||||
MinValue = -360
|
||||
OnChange = seOrientationChange
|
||||
TabOrder = 2
|
||||
object Panel2: TPanel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = cmbFontName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 31
|
||||
Top = 23
|
||||
Width = 301
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BevelOuter = bvNone
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousSpaceResize
|
||||
ChildSizing.ShrinkHorizontal = crsHomogenousSpaceResize
|
||||
ChildSizing.ControlsPerLine = 3
|
||||
ClientHeight = 31
|
||||
ClientWidth = 301
|
||||
TabOrder = 4
|
||||
object cmbFontSize: TComboBox
|
||||
AnchorSideLeft.Control = Panel2
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = Panel1
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 144
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 16
|
||||
ItemHeight = 15
|
||||
OnChange = cmbFontSizeChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object Panel1: TPanel
|
||||
AnchorSideRight.Control = cbFontColor
|
||||
Left = 160
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 97
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Right = 16
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 23
|
||||
ClientWidth = 97
|
||||
TabOrder = 1
|
||||
object lblOrientation: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = seOrientation
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 4
|
||||
Width = 31
|
||||
Caption = 'Angle'
|
||||
FocusControl = seOrientation
|
||||
ParentColor = False
|
||||
end
|
||||
object seOrientation: TSpinEdit
|
||||
AnchorSideLeft.Control = lblOrientation
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 39
|
||||
Height = 23
|
||||
Top = 0
|
||||
Width = 58
|
||||
BorderSpacing.Left = 8
|
||||
MaxValue = 360
|
||||
MinValue = -360
|
||||
OnChange = seOrientationChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object cbFontColor: TColorButton
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Panel2
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 273
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 28
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
BorderWidth = 2
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
Margin = 2
|
||||
OnColorChanged = cbFontColorColorChanged
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -5,7 +5,8 @@ unit ceFontFrame;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Graphics, Forms, Controls, StdCtrls, Dialogs, Spin;
|
||||
Classes, SysUtils, Graphics, Forms, Controls, StdCtrls, Dialogs, Spin,
|
||||
ExtCtrls;
|
||||
|
||||
type
|
||||
|
||||
@ -19,6 +20,8 @@ type
|
||||
cmbFontName: TComboBox;
|
||||
cmbFontSize: TComboBox;
|
||||
lblOrientation: TLabel;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
seOrientation: TSpinEdit;
|
||||
procedure cbBoldChange(Sender: TObject);
|
||||
procedure cbFontColorColorChanged(Sender: TObject);
|
||||
|
@ -2,12 +2,12 @@ object LegendEditor: TLegendEditor
|
||||
Left = 978
|
||||
Height = 396
|
||||
Top = 169
|
||||
Width = 553
|
||||
Width = 590
|
||||
ActiveControl = cbShow
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Legend editor'
|
||||
ClientHeight = 396
|
||||
ClientWidth = 553
|
||||
ClientWidth = 590
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
@ -18,7 +18,7 @@ object LegendEditor: TLegendEditor
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 356
|
||||
Width = 541
|
||||
Width = 578
|
||||
OKButton.Name = 'OKButton'
|
||||
OKButton.DefaultCaption = True
|
||||
OKButton.OnClick = OKButtonClick
|
||||
@ -36,13 +36,13 @@ object LegendEditor: TLegendEditor
|
||||
Left = 8
|
||||
Height = 309
|
||||
Top = 39
|
||||
Width = 537
|
||||
Width = 574
|
||||
Align = alClient
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 309
|
||||
ClientWidth = 537
|
||||
ClientWidth = 574
|
||||
TabOrder = 1
|
||||
object gbBackground: TGroupBox
|
||||
AnchorSideLeft.Control = gbAlignment
|
||||
@ -149,45 +149,8 @@ object LegendEditor: TLegendEditor
|
||||
Width = 216
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
BorderSpacing.Left = 20
|
||||
Caption = 'Font'
|
||||
ClientHeight = 92
|
||||
ClientWidth = 212
|
||||
Caption = 'gbFont'
|
||||
TabOrder = 1
|
||||
inline FontFrame1: TFontFrame
|
||||
Left = 8
|
||||
Height = 84
|
||||
Width = 196
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 84
|
||||
ClientWidth = 196
|
||||
inherited cmbFontName: TComboBox
|
||||
AnchorSideLeft.Control = FontFrame1
|
||||
AnchorSideTop.Control = FontFrame1
|
||||
AnchorSideRight.Control = FontFrame1
|
||||
Width = 196
|
||||
end
|
||||
inherited cbFontColor: TColorButton
|
||||
AnchorSideRight.Control = FontFrame1
|
||||
Left = 164
|
||||
end
|
||||
inherited cbBold: TCheckBox
|
||||
AnchorSideLeft.Control = FontFrame1
|
||||
end
|
||||
inherited lblOrientation: TLabel
|
||||
Left = 110
|
||||
Anchors = [akTop]
|
||||
Visible = False
|
||||
end
|
||||
inherited seOrientation: TSpinEdit
|
||||
Left = 147
|
||||
Width = 26
|
||||
Alignment = taRightJustify
|
||||
Visible = False
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbAlignment: TGroupBox
|
||||
AnchorSideLeft.Control = ParamsPanel
|
||||
@ -538,12 +501,12 @@ object LegendEditor: TLegendEditor
|
||||
Left = 0
|
||||
Height = 31
|
||||
Top = 0
|
||||
Width = 553
|
||||
Width = 590
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 31
|
||||
ClientWidth = 553
|
||||
ClientWidth = 590
|
||||
TabOrder = 0
|
||||
object cbShow: TCheckBox
|
||||
Left = 8
|
||||
|
@ -24,7 +24,6 @@ type
|
||||
cbInverted: TCheckBox;
|
||||
cbUseSideBar: TCheckBox;
|
||||
cbItemFillOrder: TComboBox;
|
||||
FontFrame1: TFontFrame;
|
||||
gbBackground: TGroupBox;
|
||||
gbBorder: TGroupBox;
|
||||
gbFont: TGroupBox;
|
||||
@ -75,6 +74,7 @@ type
|
||||
FLegend: TChartLegend;
|
||||
FSavedLegend: TChartLegend;
|
||||
FOKClicked: Boolean;
|
||||
FFontFrame: TFontFrame;
|
||||
procedure ChangedHandler(Sender: TObject);
|
||||
function GetAlignment: TLegendAlignment;
|
||||
procedure SetAlignment(AValue: TLegendAlignment);
|
||||
@ -163,8 +163,18 @@ end;
|
||||
|
||||
procedure TLegendEditor.FormCreate(Sender: TObject);
|
||||
begin
|
||||
FFontFrame := TFontFrame.Create(self);
|
||||
FFontFrame.Parent := gbFont;
|
||||
FFontFrame.Name := '';
|
||||
FFontFrame.Align := alClient;
|
||||
FFontFrame.BorderSpacing.Left := 8;
|
||||
FFontFrame.BorderSpacing.Right := 8;
|
||||
FFontFrame.AutoSize := true;
|
||||
FFontFrame.OnChange := @ChangedHandler;
|
||||
gbFont.AutoSize := true;
|
||||
gbFont.Caption := 'Font';
|
||||
|
||||
BoldHeaders(Self);
|
||||
FontFrame1.OnChange := @ChangedHandler;
|
||||
end;
|
||||
|
||||
procedure TLegendEditor.FormDestroy(Sender: TObject);
|
||||
@ -270,10 +280,10 @@ begin
|
||||
SetAlignment(ALegend.Alignment);
|
||||
|
||||
cbFilled.Checked := ALegend.BackgroundBrush.Style <> bsClear;
|
||||
cbFillColor.Selected := ALegend.BackgroundBrush.Color;
|
||||
cbFillColor.Selected := ColorToRGB(ALegend.BackgroundBrush.Color);
|
||||
|
||||
cbShowBorder.Checked := (ALegend.Frame.Style <> psClear) and ALegend.Frame.Visible;
|
||||
cbBorderColor.Selected := ALegend.Frame.Color;
|
||||
cbBorderColor.Selected := ColorToRGB(ALegend.Frame.Color);
|
||||
|
||||
seMarginX.Value := ALegend.MarginX;
|
||||
seMarginY.Value := ALegend.MarginY;
|
||||
@ -285,7 +295,7 @@ begin
|
||||
seSpacing.Value := ALegend.Spacing;
|
||||
cbItemFillOrder.ItemIndex := ord(ALegend.ItemFillOrder);
|
||||
|
||||
FontFrame1.Prepare(ALegend.Font, false);
|
||||
FFontFrame.Prepare(ALegend.Font, false);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -83,6 +83,7 @@ object PenFrame: TPenFrame
|
||||
BorderWidth = 2
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
Margin = 2
|
||||
OnColorChanged = cbPenColorColorChanged
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
|
@ -76,7 +76,7 @@ begin
|
||||
FPen := APen;
|
||||
cbPenStyle.PenStyle := FPen.Style;
|
||||
cbPenWidth.PenWidth := FPen.Width;
|
||||
cbPenColor.ButtonColor := FPen.Color;
|
||||
cbPenColor.ButtonColor := ColorToRGB(FPen.Color);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -1,11 +1,10 @@
|
||||
object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
Left = 0
|
||||
Height = 187
|
||||
Height = 237
|
||||
Top = 0
|
||||
Width = 230
|
||||
ClientHeight = 187
|
||||
ClientWidth = 230
|
||||
Constraints.MinWidth = 230
|
||||
Width = 263
|
||||
ClientHeight = 237
|
||||
ClientWidth = 263
|
||||
TabOrder = 0
|
||||
DesignLeft = 1498
|
||||
DesignTop = 388
|
||||
@ -18,7 +17,7 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 0
|
||||
Width = 230
|
||||
Width = 263
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Enabled = False
|
||||
ItemHeight = 15
|
||||
@ -42,27 +41,31 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 53
|
||||
Height = 54
|
||||
Top = 31
|
||||
Width = 108
|
||||
Width = 124
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Background'
|
||||
ClientHeight = 33
|
||||
ClientWidth = 104
|
||||
ClientHeight = 34
|
||||
ClientWidth = 120
|
||||
TabOrder = 1
|
||||
object cbFilled: TCheckBox
|
||||
AnchorSideLeft.Control = gbBackground
|
||||
AnchorSideTop.Control = cbFillColor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = cbFillColor
|
||||
Left = 10
|
||||
Height = 19
|
||||
Top = 3
|
||||
Width = 48
|
||||
Width = 62
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 10
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Bottom = 10
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 12
|
||||
Caption = 'Filled'
|
||||
OnChange = cbFilledChange
|
||||
TabOrder = 0
|
||||
@ -71,16 +74,18 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideTop.Control = gbBackground
|
||||
AnchorSideRight.Control = gbBackground
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 64
|
||||
Left = 80
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 32
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
BorderWidth = 2
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
Margin = 2
|
||||
Visible = False
|
||||
OnColorChanged = cbFillColorColorChanged
|
||||
end
|
||||
@ -92,29 +97,31 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = gbBackground
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 123
|
||||
Height = 53
|
||||
Left = 139
|
||||
Height = 54
|
||||
Top = 31
|
||||
Width = 107
|
||||
Width = 124
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Border'
|
||||
ClientHeight = 33
|
||||
ClientWidth = 103
|
||||
ClientHeight = 34
|
||||
ClientWidth = 120
|
||||
TabOrder = 2
|
||||
object cbShowBorder: TCheckBox
|
||||
AnchorSideLeft.Control = gbBorder
|
||||
AnchorSideTop.Control = cbBorderColor
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = cbBorderColor
|
||||
Left = 10
|
||||
Height = 19
|
||||
Top = 3
|
||||
Width = 54
|
||||
Width = 68
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 10
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Bottom = 10
|
||||
Caption = 'Visible'
|
||||
BorderSpacing.Bottom = 12
|
||||
Caption = 'Visible '
|
||||
OnChange = cbShowBorderChange
|
||||
TabOrder = 0
|
||||
end
|
||||
@ -122,16 +129,18 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideTop.Control = gbBorder
|
||||
AnchorSideRight.Control = gbBorder
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 65
|
||||
Left = 82
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 30
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Left = 4
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
BorderWidth = 2
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
Margin = 2
|
||||
Visible = False
|
||||
OnColorChanged = cbBorderColorColorChanged
|
||||
end
|
||||
@ -142,60 +151,41 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = gbBorder
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 95
|
||||
Top = 92
|
||||
Width = 230
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
Height = 97
|
||||
Top = 93
|
||||
Width = 263
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Margins'
|
||||
ClientHeight = 75
|
||||
ClientWidth = 226
|
||||
ClientHeight = 77
|
||||
ClientWidth = 259
|
||||
TabOrder = 3
|
||||
object seTopMargin: TSpinEdit
|
||||
AnchorSideLeft.Control = gbMargins
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = gbMargins
|
||||
Left = 88
|
||||
Left = 104
|
||||
Height = 23
|
||||
Top = 0
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Bottom = 4
|
||||
OnChange = seTopMarginChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object seBottomMargin: TSpinEdit
|
||||
AnchorSideLeft.Control = gbMargins
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = Bevel2
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideBottom.Control = gbMargins
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 88
|
||||
Height = 23
|
||||
Top = 44
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Bottom = 8
|
||||
OnChange = seBottomMarginChange
|
||||
TabOrder = 3
|
||||
end
|
||||
object seLeftMargin: TSpinEdit
|
||||
AnchorSideTop.Control = Bevel2
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideTop.Control = seTopMargin
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = seTopMargin
|
||||
Left = 30
|
||||
Left = 46
|
||||
Height = 23
|
||||
Top = 22
|
||||
Top = 23
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Left = 32
|
||||
BorderSpacing.Right = 8
|
||||
OnChange = seLeftMarginChange
|
||||
TabOrder = 1
|
||||
@ -203,30 +193,33 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
object seRightMargin: TSpinEdit
|
||||
AnchorSideLeft.Control = seTopMargin
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Bevel2
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 146
|
||||
AnchorSideTop.Control = seTopMargin
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 162
|
||||
Height = 23
|
||||
Top = 22
|
||||
Top = 23
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Right = 32
|
||||
OnChange = seRightMarginChange
|
||||
TabOrder = 2
|
||||
end
|
||||
object Bevel2: TBevel
|
||||
object seBottomMargin: TSpinEdit
|
||||
AnchorSideLeft.Control = gbMargins
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = seTopMargin
|
||||
AnchorSideTop.Control = seLeftMargin
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideBottom.Control = seBottomMargin
|
||||
Left = 88
|
||||
Height = 13
|
||||
Top = 27
|
||||
AnchorSideBottom.Control = gbMargins
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 104
|
||||
Height = 23
|
||||
Top = 46
|
||||
Width = 50
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
Shape = bsSpacer
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Bottom = 8
|
||||
OnChange = seBottomMarginChange
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
@ -234,7 +227,7 @@ object ShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = cmbShape
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 115
|
||||
Left = 131
|
||||
Height = 50
|
||||
Top = 23
|
||||
Width = 1
|
||||
|
@ -6,7 +6,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Graphics, Forms, Controls, StdCtrls, Dialogs, Spin, ExtCtrls,
|
||||
TATextElements;
|
||||
TATypes, TATextElements;
|
||||
|
||||
type
|
||||
|
||||
@ -16,7 +16,6 @@ type
|
||||
|
||||
TShapeBrushPenMarginsFrame = class(TFrame)
|
||||
Bevel1: TBevel;
|
||||
Bevel2: TBevel;
|
||||
cbBorderColor: TColorButton;
|
||||
cbFillColor: TColorButton;
|
||||
cbFilled: TCheckBox;
|
||||
@ -42,17 +41,18 @@ type
|
||||
FOnChange: TNotifyEvent;
|
||||
FOnShapeChange: TShapeChangeEvent;
|
||||
FBrush: TBrush;
|
||||
FPen: TPen;
|
||||
FPen: TChartPen;
|
||||
FMargins: TChartLabelMargins;
|
||||
FShape: TChartLabelShape;
|
||||
FLockEvents: Integer;
|
||||
procedure DoChanged;
|
||||
procedure DoShapeChanged(AShape: TChartLabelShape);
|
||||
procedure UpdateControls;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
procedure GetData(out AShape: TChartLabelShape; ABrush: TBrush;
|
||||
APen: TPen; AMargins: TChartLabelMargins);
|
||||
procedure Prepare(AShape: TChartLabelShape; ABrush: TBrush; APen: TPen;
|
||||
APen: TChartPen; AMargins: TChartLabelMargins);
|
||||
procedure Prepare(AShape: TChartLabelShape; ABrush: TBrush; APen: TChartPen;
|
||||
AMargins: TChartLabelMargins);
|
||||
property OnChange: TNotifyEvent read FOnChange write FOnChange;
|
||||
property OnShapeChange: TShapeChangeEvent read FOnShapeChange write FOnShapeChange;
|
||||
@ -78,7 +78,7 @@ end;
|
||||
procedure TShapeBrushPenMarginsFrame.cbBorderColorColorChanged(Sender: TObject);
|
||||
begin
|
||||
FPen.Color := cbBorderColor.ButtonColor;
|
||||
if FPen.Style <> psClear then
|
||||
// if FPen.Style <> psClear then
|
||||
DoChanged;
|
||||
end;
|
||||
|
||||
@ -102,25 +102,27 @@ end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.cbShowBorderChange(Sender: TObject);
|
||||
begin
|
||||
if cbShowBorder.Checked then FPen.Style := psSolid else FPen.Style := psClear;
|
||||
FPen.Visible := cbShowBorder.Checked;
|
||||
if FPen.Visible and (FPen.Style = psClear) then FPen.Style := psSolid;
|
||||
UpdateControls;
|
||||
DoChanged;
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.cmbShapeChange(Sender: TObject);
|
||||
begin
|
||||
DoShapeChanged(TChartLabelShape(cmbShape.ItemIndex));
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.DoChanged;
|
||||
begin
|
||||
if Assigned(FOnChange) then FOnChange(Self);
|
||||
if (FLockEvents = 0) and Assigned(FOnChange) then
|
||||
FOnChange(Self);
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.DoShapeChanged(AShape: TChartLabelShape);
|
||||
begin
|
||||
if Assigned(FOnShapeChange) then FOnShapeChange(AShape);
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.cmbShapeChange(Sender: TObject);
|
||||
begin
|
||||
FShape := TChartLabelShape(cmbShape.ItemIndex);
|
||||
DoShapeChanged(FShape);
|
||||
if (FLockEvents = 0) and Assigned(FOnShapeChange) then
|
||||
FOnShapeChange(AShape);
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.seBottomMarginChange(Sender: TObject);
|
||||
@ -148,13 +150,17 @@ begin
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.GetData(out AShape: TChartLabelShape;
|
||||
ABrush: TBrush; APen: TPen; AMargins: TChartLabelMargins);
|
||||
ABrush: TBrush; APen: TChartPen; AMargins: TChartLabelMargins);
|
||||
begin
|
||||
AShape := TChartLabelShape(cmbShape.ItemIndex);
|
||||
if cbFilled.Checked then ABrush.Style := bsSolid else ABrush.Style := bsClear;
|
||||
ABrush.Color := cbFillColor.ButtonColor;
|
||||
if cbShowBorder.Checked then APen.Style := psSolid else APen.Style := psClear;
|
||||
APen.Color := cbBorderColor.ButtonColor;
|
||||
if HandleAllocated then
|
||||
begin
|
||||
if cbFilled.Checked then ABrush.Style := bsSolid else ABrush.Style := bsClear;
|
||||
ABrush.Color := cbFillColor.ButtonColor;
|
||||
APen.Visible := cbShowBorder.Checked;
|
||||
APen.Style := psSolid;
|
||||
APen.Color := cbBorderColor.ButtonColor;
|
||||
end;
|
||||
AMargins.Top := seTopMargin.Value;
|
||||
AMargins.Left := seLeftMargin.Value;
|
||||
AMargins.Right := seRightMargin.Value;
|
||||
@ -162,21 +168,26 @@ begin
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.Prepare(AShape: TChartLabelShape;
|
||||
ABrush: TBrush; APen: TPen; AMargins: TChartLabelMargins);
|
||||
ABrush: TBrush; APen: TChartPen; AMargins: TChartLabelMargins);
|
||||
begin
|
||||
inc(FLockEvents);
|
||||
FShape := AShape;
|
||||
FBrush := ABrush;
|
||||
FPen := APen;
|
||||
FMargins := AMargins;
|
||||
cmbShape.ItemIndex := ord(AShape);
|
||||
cbFilled.Checked := ABrush.Style <> bsClear;
|
||||
cbFillColor.ButtonColor := ABrush.Color;
|
||||
cbShowBorder.Checked := APen.Style <> psClear;
|
||||
cbBorderColor.ButtonColor := APen.Color;
|
||||
cbFillColor.ButtonColor := ColorToRGB(ABrush.Color);
|
||||
cbShowBorder.Checked := APen.EffVisible;
|
||||
if APen.Color = clDefault then
|
||||
cbBorderColor.ButtonColor := ColorToRGB(clWindowText)
|
||||
else
|
||||
cbBorderColor.ButtonColor := ColorToRGB(APen.Color);
|
||||
seTopMargin.Value := AMargins.Top;
|
||||
seLeftMargin.Value := AMargins.Left;
|
||||
seRightMargin.Value := AMargins.Right;
|
||||
seBottomMargin.Value := AMargins.Bottom;
|
||||
dec(FLockEvents);
|
||||
end;
|
||||
|
||||
procedure TShapeBrushPenMarginsFrame.UpdateControls;
|
||||
|
@ -1,12 +1,13 @@
|
||||
object TitleFootEditor: TTitleFootEditor
|
||||
Left = 608
|
||||
Height = 467
|
||||
Height = 357
|
||||
Top = 235
|
||||
Width = 561
|
||||
ActiveControl = cbShow
|
||||
Caption = 'Title/footer editor'
|
||||
ClientHeight = 467
|
||||
ClientHeight = 357
|
||||
ClientWidth = 561
|
||||
OnActivate = FormActivate
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
@ -16,7 +17,7 @@ object TitleFootEditor: TTitleFootEditor
|
||||
object ButtonPanel: TButtonPanel
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 427
|
||||
Top = 317
|
||||
Width = 549
|
||||
OKButton.Name = 'OKButton'
|
||||
OKButton.DefaultCaption = True
|
||||
@ -33,13 +34,13 @@ object TitleFootEditor: TTitleFootEditor
|
||||
end
|
||||
object ParamsPanel: TPanel
|
||||
Left = 8
|
||||
Height = 219
|
||||
Top = 200
|
||||
Height = 187
|
||||
Top = 122
|
||||
Width = 545
|
||||
Align = alBottom
|
||||
BorderSpacing.Around = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 219
|
||||
ClientHeight = 187
|
||||
ClientWidth = 545
|
||||
TabOrder = 2
|
||||
object rgAlignment: TRadioGroup
|
||||
@ -47,21 +48,23 @@ object TitleFootEditor: TTitleFootEditor
|
||||
AnchorSideTop.Control = ParamsPanel
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 52
|
||||
Height = 51
|
||||
Top = 0
|
||||
Width = 264
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
Width = 211
|
||||
AutoFill = True
|
||||
AutoSize = True
|
||||
Caption = 'Alignment'
|
||||
ChildSizing.LeftRightSpacing = 6
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.EnlargeVertical = crsHomogenousChildResize
|
||||
ChildSizing.LeftRightSpacing = 16
|
||||
ChildSizing.TopBottomSpacing = 6
|
||||
ChildSizing.HorizontalSpacing = 16
|
||||
ChildSizing.EnlargeHorizontal = crsScaleChilds
|
||||
ChildSizing.EnlargeVertical = crsScaleChilds
|
||||
ChildSizing.ShrinkHorizontal = crsScaleChilds
|
||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 3
|
||||
ClientHeight = 32
|
||||
ClientWidth = 260
|
||||
ClientHeight = 31
|
||||
ClientWidth = 207
|
||||
Columns = 3
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
@ -73,125 +76,49 @@ object TitleFootEditor: TTitleFootEditor
|
||||
TabOrder = 0
|
||||
end
|
||||
object gbShapeBrushPenMargins: TGroupBox
|
||||
Left = 288
|
||||
Height = 216
|
||||
AnchorSideLeft.Control = rgAlignment
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = rgAlignment
|
||||
AnchorSideRight.Control = ParamsPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 235
|
||||
Height = 168
|
||||
Top = 0
|
||||
Width = 255
|
||||
Width = 310
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 24
|
||||
Caption = 'Title/footer background'
|
||||
ClientHeight = 196
|
||||
ClientWidth = 251
|
||||
TabOrder = 2
|
||||
inline ShapeBrushPenMarginsFrame1: TShapeBrushPenMarginsFrame
|
||||
Left = 8
|
||||
Height = 188
|
||||
Width = 235
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 188
|
||||
ClientWidth = 235
|
||||
inherited cmbShape: TComboBox
|
||||
AnchorSideLeft.Control = ShapeBrushPenMarginsFrame1
|
||||
AnchorSideTop.Control = ShapeBrushPenMarginsFrame1
|
||||
AnchorSideRight.Control = ShapeBrushPenMarginsFrame1
|
||||
Width = 235
|
||||
end
|
||||
inherited gbBackground: TGroupBox
|
||||
AnchorSideLeft.Control = ShapeBrushPenMarginsFrame1
|
||||
Width = 110
|
||||
ClientWidth = 106
|
||||
inherited cbFillColor: TColorButton
|
||||
Left = 66
|
||||
end
|
||||
end
|
||||
inherited gbBorder: TGroupBox
|
||||
AnchorSideRight.Control = ShapeBrushPenMarginsFrame1
|
||||
Left = 125
|
||||
Width = 110
|
||||
ClientWidth = 106
|
||||
inherited cbBorderColor: TColorButton
|
||||
Left = 68
|
||||
end
|
||||
end
|
||||
inherited gbMargins: TGroupBox
|
||||
AnchorSideBottom.Control = ShapeBrushPenMarginsFrame1
|
||||
Height = 96
|
||||
Width = 235
|
||||
ClientHeight = 76
|
||||
ClientWidth = 231
|
||||
inherited seTopMargin: TSpinEdit
|
||||
Left = 90
|
||||
end
|
||||
inherited seBottomMargin: TSpinEdit
|
||||
Left = 90
|
||||
Top = 45
|
||||
end
|
||||
inherited seLeftMargin: TSpinEdit
|
||||
Left = 32
|
||||
Top = 23
|
||||
end
|
||||
inherited seRightMargin: TSpinEdit
|
||||
Left = 148
|
||||
Top = 23
|
||||
end
|
||||
inherited Bevel2: TBevel
|
||||
Left = 90
|
||||
Height = 14
|
||||
end
|
||||
end
|
||||
inherited Bevel1: TBevel
|
||||
Left = 117
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbFont: TGroupBox
|
||||
AnchorSideLeft.Control = rgAlignment
|
||||
AnchorSideTop.Control = rgAlignment
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = rgAlignment
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 106
|
||||
Top = 88
|
||||
Width = 264
|
||||
Height = 61
|
||||
Top = 75
|
||||
Width = 211
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 24
|
||||
Caption = 'Font'
|
||||
ClientHeight = 86
|
||||
ClientWidth = 260
|
||||
TabOrder = 1
|
||||
inline FontFrame1: TFontFrame
|
||||
Left = 8
|
||||
Height = 78
|
||||
Width = 244
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ClientHeight = 78
|
||||
ClientWidth = 244
|
||||
inherited cmbFontName: TComboBox
|
||||
AnchorSideLeft.Control = FontFrame1
|
||||
AnchorSideTop.Control = FontFrame1
|
||||
AnchorSideRight.Control = FontFrame1
|
||||
Width = 244
|
||||
end
|
||||
inherited cbFontColor: TColorButton
|
||||
AnchorSideRight.Control = FontFrame1
|
||||
Left = 212
|
||||
end
|
||||
inherited cbBold: TCheckBox
|
||||
AnchorSideLeft.Control = FontFrame1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object MemoPanel: TPanel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 159
|
||||
Height = 81
|
||||
Top = 33
|
||||
Width = 545
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 159
|
||||
ClientHeight = 81
|
||||
ClientWidth = 545
|
||||
Constraints.MinHeight = 100
|
||||
Constraints.MinHeight = 80
|
||||
TabOrder = 1
|
||||
object lblText: TLabel
|
||||
AnchorSideLeft.Control = MemoPanel
|
||||
@ -212,7 +139,7 @@ object TitleFootEditor: TTitleFootEditor
|
||||
AnchorSideBottom.Control = MemoPanel
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 140
|
||||
Height = 62
|
||||
Top = 19
|
||||
Width = 545
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
|
@ -16,7 +16,6 @@ type
|
||||
TTitleFootEditor = class(TForm)
|
||||
ButtonPanel: TButtonPanel;
|
||||
cbShow: TCheckBox;
|
||||
FontFrame1: TFontFrame;
|
||||
gbShapeBrushPenMargins: TGroupBox;
|
||||
gbFont: TGroupBox;
|
||||
lblText: TLabel;
|
||||
@ -25,8 +24,8 @@ type
|
||||
PanelTop: TPanel;
|
||||
ParamsPanel: TPanel;
|
||||
rgAlignment: TRadioGroup;
|
||||
ShapeBrushPenMarginsFrame1: TShapeBrushPenMarginsFrame;
|
||||
procedure cbShowChange(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
@ -37,10 +36,13 @@ type
|
||||
private
|
||||
FTitle: TChartTitle;
|
||||
FSavedTitle: TChartTitle;
|
||||
FFontFrame: TFontFrame;
|
||||
FShapeBrushPenMarginsFrame: TShapeBrushPenMarginsFrame;
|
||||
FOKClicked: boolean;
|
||||
procedure ChangedHandler(Sender: TObject);
|
||||
function GetAlignment: TAlignment;
|
||||
procedure SetAlignment(AValue: TAlignment);
|
||||
procedure ShapeChangedHandler(AShape: TChartLabelShape);
|
||||
protected
|
||||
function GetChart: TChart;
|
||||
public
|
||||
@ -69,6 +71,21 @@ begin
|
||||
gbFont.Visible := cbShow.Checked;
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.FormActivate(Sender: TObject);
|
||||
begin
|
||||
Constraints.MinHeight := PanelTop.Height +
|
||||
MemoPanel.Constraints.MinHeight +
|
||||
ParamsPanel.Height + ParamsPanel.BorderSpacing.Around*2 +
|
||||
ButtonPanel.Height + ButtonPanel.BorderSpacing.Around*2;
|
||||
|
||||
Constraints.MinWidth := gbFont.Width +
|
||||
gbShapeBrushPenMargins.Width + gbShapeBrushPenMargins.BorderSpacing.Left +
|
||||
ParamsPanel.BorderSpacing.Around * 2;
|
||||
|
||||
Width := 1; // Enforce the constraints.
|
||||
Height := 1;
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.ChangedHandler(Sender: TObject);
|
||||
begin
|
||||
GetChart.Invalidate;
|
||||
@ -88,9 +105,30 @@ end;
|
||||
|
||||
procedure TTitleFootEditor.FormCreate(Sender: TObject);
|
||||
begin
|
||||
// Insert frames at runtime - this makes life much easier...
|
||||
FFontFrame := TFontFrame.Create(self);
|
||||
FFontFrame.Parent := gbFont;
|
||||
FFontFrame.Align := alClient;
|
||||
FFontFrame.BorderSpacing.Left := 8;
|
||||
FFontFrame.BorderSpacing.Right := 8;
|
||||
FFontFrame.BorderSpacing.Bottom := 0;//8;
|
||||
FFontFrame.OnChange := @ChangedHandler;
|
||||
gbFont.AutoSize := true;
|
||||
|
||||
FShapeBrushPenMarginsFrame := TShapeBrushPenMarginsFrame.Create(self);
|
||||
FShapeBrushPenMarginsFrame.Parent := gbShapeBrushPenMargins;
|
||||
FShapeBrushPenMarginsFrame.Align := alClient;
|
||||
FShapeBrushPenMarginsFrame.BorderSpacing.Left := 8;
|
||||
FShapeBrushPenMarginsFrame.BorderSpacing.Right := 8;
|
||||
FShapeBrushPenMarginsFrame.BorderSpacing.Bottom := 8;
|
||||
FShapeBrushPenMarginsFrame.Constraints.MinWidth := 230;
|
||||
FShapeBrushPenMarginsFrame.OnChange := @ChangedHandler;
|
||||
FShapeBrushPenMarginsFrame.OnShapeChange := @ShapeChangedHandler;
|
||||
gbShapeBrushPenMargins.AutoSize := true;
|
||||
|
||||
BoldHeaders(Self);
|
||||
FontFrame1.OnChange := @ChangedHandler;
|
||||
ShapeBrushPenMarginsFrame1.OnChange := @ChangedHandler;
|
||||
|
||||
ParamsPanel.AutoSize := true;
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.FormDestroy(Sender: TObject);
|
||||
@ -100,12 +138,14 @@ end;
|
||||
|
||||
procedure TTitleFootEditor.FormShow(Sender: TObject);
|
||||
begin
|
||||
(*
|
||||
if cbShow.Checked then begin
|
||||
AutoSize := true;
|
||||
Constraints.MinWidth := Width;
|
||||
Constraints.MinHeight := Height;
|
||||
AutoSize := false;
|
||||
end;
|
||||
*)
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.mmoTextChange(Sender: TObject);
|
||||
@ -145,8 +185,9 @@ begin
|
||||
SetAlignment(ATitle.Alignment);
|
||||
|
||||
mmoText.Font.Assign(ATitle.Font);
|
||||
FontFrame1.Prepare(ATitle.Font, false);
|
||||
ShapeBrushPenMarginsFrame1.Prepare(ATitle.Shape, ATitle.Brush, ATitle.Frame, ATitle.Margins);
|
||||
mmoText.Font.Orientation := 0;
|
||||
FFontFrame.Prepare(ATitle.Font, false);
|
||||
FShapeBrushPenMarginsFrame.Prepare(ATitle.Shape, ATitle.Brush, ATitle.Frame, ATitle.Margins);
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.rgAlignmentClick(Sender: TObject);
|
||||
@ -161,5 +202,10 @@ begin
|
||||
rgAlignment.ItemIndex := ALIGNMENTS[AValue];
|
||||
end;
|
||||
|
||||
procedure TTitleFootEditor.ShapeChangedHandler(AShape: TChartLabelShape);
|
||||
begin
|
||||
FTitle.Shape := AShape;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user