lazarus/components/tachart/demo/axistransf/main.lfm

767 lines
22 KiB
Plaintext

object Form1: TForm1
Left = 559
Height = 434
Top = 158
Width = 533
Caption = 'TAChart axis transformation demo'
ClientHeight = 434
ClientWidth = 533
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '2.3.0.0'
object PageControl1: TPageControl
Left = 0
Height = 434
Top = 0
Width = 533
ActivePage = tsLinear
Align = alClient
TabIndex = 0
TabOrder = 0
object tsLinear: TTabSheet
Caption = 'Linear'
ClientHeight = 406
ClientWidth = 525
object ChartT: TChart
Left = 0
Height = 371
Top = 0
Width = 525
AxisList = <
item
Grid.Visible = False
TickColor = clRed
AxisPen.Color = clRed
AxisPen.Visible = True
Marks.LabelFont.Color = clRed
Marks.AtDataOnly = True
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Color = clRed
Title.LabelFont.Orientation = 900
Title.Visible = True
Title.Caption = 'Summer temperature, °C'
Title.LabelBrush.Style = bsClear
Transformations = catTAuto
end
item
Intervals.MaxLength = 100
Intervals.MinLength = 20
Alignment = calBottom
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.Visible = True
Title.Caption = 'Year'
Title.LabelBrush.Style = bsClear
end
item
Grid.Visible = False
TickColor = clBlue
Alignment = calRight
AxisPen.Color = clBlue
AxisPen.Visible = True
Marks.Distance = 4
Marks.LabelFont.Color = clBlue
Marks.AtDataOnly = True
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Color = clBlue
Title.LabelFont.Orientation = 900
Title.Visible = True
Title.Caption = 'Winter temperature, °F'
Title.LabelBrush.Style = bsClear
Transformations = catT
end>
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Frame.Visible = False
Title.Brush.Color = clBtnFace
Title.Font.Color = clBlue
Title.Text.Strings = (
'TAChart'
)
Align = alClient
Color = clWindow
object ChartTSummer: TLineSeries
AxisIndexY = 0
LinePen.Color = clRed
LinePen.Width = 2
Source = rcsTSummer
end
object ChartTWinterLine: TLineSeries
AxisIndexY = 2
LinePen.Color = clBlue
LinePen.Width = 2
Source = rcsTWinter
end
object ChartTWinterBar: TBarSeries
AxisIndexY = 2
BarBrush.Color = clBlue
BarBrush.Style = bsDiagCross
Source = rcsTWinter
end
end
object pnlAutoControls: TPanel
Left = 0
Height = 35
Top = 371
Width = 525
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 35
ClientWidth = 525
TabOrder = 1
object cbAuto: TCheckBox
AnchorSideLeft.Control = pnlAutoControls
AnchorSideTop.Control = pnlAutoControls
AnchorSideTop.Side = asrCenter
Left = 8
Height = 19
Top = 8
Width = 73
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Bottom = 8
Caption = 'Auto scale'
OnChange = cbAutoChange
TabOrder = 0
end
end
end
object tsIndependent: TTabSheet
Caption = 'Independent scale'
ClientHeight = 406
ClientWidth = 525
object ChartIndependent: TChart
Left = 0
Height = 347
Top = 0
Width = 525
AxisList = <
item
Grid.Visible = False
Intervals.Tolerance = 1
TickColor = clNavy
Marks.LabelFont.Color = clNavy
Marks.LabelFont.Style = [fsBold]
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Orientation = 900
Title.LabelBrush.Style = bsClear
Transformations = catIndependent1
end
item
Grid.Visible = False
Alignment = calBottom
Marks.Visible = False
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelBrush.Style = bsClear
end
item
Grid.Visible = False
Intervals.Tolerance = 1
TickColor = clGreen
Alignment = calRight
Marks.LabelFont.Color = clGreen
Marks.LabelFont.Style = [fsBold]
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelBrush.Style = bsClear
Transformations = catIndependent2
end>
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Title.Brush.Color = clBtnFace
Title.Font.Color = clBlue
Title.Text.Strings = (
'TAChart'
)
Align = alClient
Color = clWhite
object ChartIndependentLineSeries1: TLineSeries
AxisIndexY = 0
LinePen.Color = clNavy
LinePen.Width = 2
end
object ChartIndependentLineSeries2: TLineSeries
AxisIndexY = 2
LinePen.Color = clGreen
LinePen.Width = 2
end
end
object pnlIndependentControls: TPanel
Left = 4
Height = 51
Top = 351
Width = 517
Align = alBottom
AutoSize = True
BorderSpacing.Around = 4
BevelOuter = bvNone
ClientHeight = 51
ClientWidth = 517
TabOrder = 1
object fseIndependent1: TFloatSpinEdit
AnchorSideLeft.Control = lblIndependentScale1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = rgSyncAxisMarks
AnchorSideTop.Side = asrCenter
Left = 63
Height = 23
Top = 14
Width = 70
BorderSpacing.Left = 8
Increment = 0.1
MaxValue = 10
MinValue = 0.1
OnChange = fseIndependent1Change
TabOrder = 0
Value = 1
end
object fseIndependent2: TFloatSpinEdit
AnchorSideLeft.Control = lblIndependentScale2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = rgSyncAxisMarks
AnchorSideTop.Side = asrCenter
Left = 196
Height = 23
Top = 14
Width = 70
BorderSpacing.Left = 8
Increment = 0.1
MaxValue = 10
MinValue = 0.1
OnChange = fseIndependent2Change
TabOrder = 1
Value = 1
end
object lblIndependentScale1: TLabel
AnchorSideLeft.Control = pnlIndependentControls
AnchorSideTop.Control = fseIndependent1
AnchorSideTop.Side = asrCenter
Left = 16
Height = 15
Top = 18
Width = 39
BorderSpacing.Left = 16
Caption = 'Scale 1'
Font.Color = clNavy
Font.Style = [fsBold]
ParentFont = False
end
object lblIndependentScale2: TLabel
AnchorSideLeft.Control = fseIndependent1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = fseIndependent2
AnchorSideTop.Side = asrCenter
Left = 149
Height = 15
Top = 18
Width = 39
BorderSpacing.Left = 16
Caption = 'Scale 2'
Font.Color = clGreen
Font.Style = [fsBold]
ParentFont = False
end
object rgSyncAxisMarks: TRadioGroup
AnchorSideRight.Side = asrBottom
Left = 330
Height = 51
Top = 0
Width = 187
Align = alRight
AutoFill = True
AutoSize = True
BorderSpacing.InnerBorder = 4
Caption = ' Synchronize marks '
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 2
ChildSizing.HorizontalSpacing = 10
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 3
ClientHeight = 31
ClientWidth = 183
Columns = 3
ItemIndex = 1
Items.Strings = (
'Left'
'None'
'Right'
)
OnClick = rgSyncAxisMarksClick
TabOrder = 2
end
end
end
object tsLog: TTabSheet
Caption = 'Logarithm'
ClientHeight = 406
ClientWidth = 525
object ChartLog: TChart
Left = 0
Height = 367
Top = 0
Width = 525
AxisList = <
item
Intervals.Count = 10
Intervals.Options = [aipGraphCoords, aipUseCount, aipUseMinLength, aipUseNiceSteps]
Intervals.Tolerance = 5
Marks.LabelBrush.Style = bsClear
Marks.Stripes = csStripes
Minors = <
item
Grid.Visible = False
Intervals.Count = 9
Intervals.MinLength = 5
Intervals.Options = [aipUseCount, aipUseMaxLength, aipUseMinLength, aipUseNiceSteps]
Marks.LabelBrush.Style = bsClear
end>
Title.LabelFont.Orientation = 900
Title.Visible = True
Title.Caption = 'Left'
Title.LabelBrush.Style = bsClear
Transformations = catLog
end
item
Grid.Visible = False
Alignment = calBottom
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.Distance = 0
Title.Visible = True
Title.Caption = 'Bottom'
Title.LabelBrush.Style = bsClear
end
item
Grid.Visible = False
Alignment = calRight
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Orientation = 900
Title.Visible = True
Title.Caption = 'Right 1'
Title.LabelBrush.Style = bsClear
end
item
Grid.Visible = False
Alignment = calTop
Arrow.Inverted = True
Inverted = True
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.Caption = 'Top'
Title.LabelBrush.Style = bsClear
end>
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Title.Brush.Color = clBtnFace
Title.Font.Color = clBlue
Title.Text.Strings = (
'TAChart'
)
Align = alClient
Color = clWindow
object clsLogPoints: TLineSeries
AxisIndexY = 0
LineType = ltNone
Pointer.Brush.Color = clMaroon
Pointer.Visible = True
ShowPoints = True
end
object cfsLog: TFuncSeries
Extent.UseXMax = True
Extent.UseXMin = True
Extent.XMax = 3
Extent.XMin = -1
AxisIndexY = 0
OnCalculate = ChartLogFuncSeries1Calculate
end
end
object pnlLogControls: TPanel
Left = 8
Height = 23
Top = 375
Width = 509
Align = alBottom
AutoSize = True
BorderSpacing.Around = 8
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 509
TabOrder = 1
object cbLog: TCheckBox
AnchorSideLeft.Control = pnlLogControls
AnchorSideTop.Control = seTolerance
AnchorSideTop.Side = asrCenter
Left = 0
Height = 19
Top = 2
Width = 67
Caption = 'Log scale'
Checked = True
OnChange = cbLogChange
State = cbChecked
TabOrder = 0
end
object seTolerance: TSpinEdit
AnchorSideLeft.Control = lblTolerance
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = pnlLogControls
Left = 141
Height = 23
Top = 0
Width = 50
BorderSpacing.Left = 8
MaxValue = 10000
OnChange = seToleranceChange
TabOrder = 1
end
object lblTolerance: TLabel
AnchorSideLeft.Control = cbLog
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = seTolerance
AnchorSideTop.Side = asrCenter
Left = 83
Height = 15
Top = 4
Width = 50
BorderSpacing.Left = 16
Caption = 'Tolerance'
end
end
end
object tsCumulNormDistr: TTabSheet
Caption = 'Normal distribution'
ClientHeight = 406
ClientWidth = 525
object ChartCumulNormDistr: TChart
Left = 0
Height = 324
Top = 82
Width = 525
AxisList = <
item
Grid.Color = clSilver
Grid.Visible = False
Intervals.Count = 30
Intervals.Options = [aipUseCount, aipUseNiceSteps]
Intervals.Tolerance = 1
Marks.LabelBrush.Style = bsClear
Marks.OverlapPolicy = opHideNeighbour
Minors = <>
Title.LabelFont.Orientation = 900
Title.LabelFont.Style = [fsBold]
Title.Visible = True
Title.Caption = 'Cumulative probability'
Title.LabelBrush.Style = bsClear
Transformations = catCumulNormDistr
end
item
Grid.Color = clSilver
Grid.Visible = False
Alignment = calBottom
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Style = [fsBold]
Title.Visible = True
Title.Caption = 'Random number'
Title.LabelBrush.Style = bsClear
end>
Extent.XMax = 3
Extent.XMin = -3
Extent.YMax = 3
Extent.YMin = -3
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
MarginsExternal.Left = 8
MarginsExternal.Right = 12
MarginsExternal.Bottom = 8
Title.Brush.Color = clBtnFace
Title.Font.Color = clBlue
Title.Text.Strings = (
'TAChart'
)
Align = alClient
Color = clWindow
object ChartCumulNormDistrLineSeries1: TLineSeries
AxisIndexX = 1
AxisIndexY = 0
Pointer.Brush.Color = clBlue
Pointer.HorizSize = 2
Pointer.Pen.Color = clBlue
Pointer.Style = psCircle
Pointer.VertSize = 2
Pointer.Visible = True
ShowPoints = True
end
end
object pnCumulNormDistr: TPanel
Left = 0
Height = 82
Top = 0
Width = 525
Align = alTop
AutoSize = True
BevelOuter = bvNone
ClientHeight = 82
ClientWidth = 525
TabOrder = 1
object rgRandDistr: TRadioGroup
AnchorSideLeft.Control = pnCumulNormDistr
AnchorSideTop.Control = pnCumulNormDistr
Left = 8
Height = 66
Top = 8
Width = 175
AutoFill = True
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Bottom = 8
Caption = ' Random number generation '
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 4
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 46
ClientWidth = 171
ItemIndex = 1
Items.Strings = (
'uniform distribution'
'normal distribution'
)
OnClick = rgRandDistrClick
ParentFont = False
TabOrder = 0
end
object cbPercent: TCheckBox
AnchorSideLeft.Control = lblDataCount
AnchorSideTop.Control = edDataCount
AnchorSideTop.Side = asrBottom
Left = 199
Height = 19
Top = 39
Width = 58
BorderSpacing.Top = 8
Caption = 'Percent'
OnChange = cbPercentChange
TabOrder = 1
end
object cbUseAxisTransform: TCheckBox
AnchorSideLeft.Control = edDataCount
AnchorSideTop.Control = cbPercent
Left = 268
Height = 19
Top = 39
Width = 116
BorderSpacing.Bottom = 4
Caption = 'Use AxisTransform'
OnChange = cbUseAxisTransformChange
TabOrder = 2
end
object edDataCount: TSpinEdit
AnchorSideLeft.Control = lblDataCount
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = pnCumulNormDistr
Left = 268
Height = 23
Top = 8
Width = 82
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Increment = 50
MaxValue = 1000000
OnChange = edDataCountChange
TabOrder = 3
Value = 300
end
object lblDataCount: TLabel
AnchorSideLeft.Control = rgRandDistr
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = edDataCount
AnchorSideTop.Side = asrCenter
Left = 199
Height = 15
Top = 12
Width = 61
BorderSpacing.Left = 16
Caption = 'Data count:'
end
end
end
object tsUser: TTabSheet
Caption = 'User defined'
ClientHeight = 406
ClientWidth = 525
object ChartUser: TChart
Left = 0
Height = 406
Top = 0
Width = 525
AxisList = <
item
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelFont.Orientation = 900
Title.LabelBrush.Style = bsClear
end
item
Grid.Visible = False
Intervals.Count = 20
Intervals.MinLength = 20
Intervals.NiceSteps = '0.2|0.25|0.4|0.5|1.0'
Intervals.Options = [aipGraphCoords, aipUseCount, aipUseMaxLength, aipUseMinLength, aipUseNiceSteps]
Alignment = calBottom
Marks.LabelBrush.Style = bsClear
Minors = <>
Title.LabelBrush.Style = bsClear
Transformations = catUser
end>
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Title.Text.Strings = (
'Drag purple line to locally zoom in various axis segments'
)
Title.Visible = True
Toolset = ChartToolset1
Align = alClient
Color = clWindow
object ChartUserLineSeries1: TLineSeries
AxisIndexX = 1
Source = rcsUser
end
object ChartUserConstantLine1: TConstantLine
AxisIndex = 1
LineStyle = lsVertical
Pen.Color = clFuchsia
Pen.Width = 2
Position = 20
end
end
end
end
object catLog: TChartAxisTransformations
Left = 216
Top = 60
object ChartAxisTransformations1LinearAxisTransform2: TLinearAxisTransform
Scale = 2
end
object ChartAxisTransformations1LogarithmAxisTransform1: TLogarithmAxisTransform
Base = 10
end
end
object catT: TChartAxisTransformations
Left = 352
Top = 60
object catTFahrToCel: TLinearAxisTransform
Offset = -17.777777777
Scale = 0.5555555555
end
object catTAutoScaleAxisTransform1: TAutoScaleAxisTransform
Enabled = False
end
end
object rcsTSummer: TRandomChartSource
PointsNumber = 20
RandSeed = 114536250
XMax = 2009
XMin = 1990
YMax = 25
Left = 87
Top = 106
end
object rcsTWinter: TRandomChartSource
PointsNumber = 20
RandSeed = 23453245
XMax = 2009
XMin = 1990
YMax = 20
YMin = -15
Left = 87
Top = 156
end
object catTAuto: TChartAxisTransformations
Left = 352
Top = 112
object catTAutoAutoScaleAxisTransform1: TAutoScaleAxisTransform
Enabled = False
end
end
object csStripes: TChartStyles
Styles = <
item
Brush.Color = 16631498
UsePen = False
end
item
Brush.Color = 12319483
UsePen = False
end>
Left = 352
Top = 176
end
object rcsUser: TRandomChartSource
PointsNumber = 100
RandSeed = 1999979507
XMax = 50
YMax = 20
YMin = 10
Left = 87
Top = 208
end
object catUser: TChartAxisTransformations
Left = 352
Top = 236
object catUserUserDefinedAxisTransform1: TUserDefinedAxisTransform
OnAxisToGraph = catUserUserDefinedAxisTransform1AxisToGraph
end
end
object ChartToolset1: TChartToolset
Left = 216
Top = 116
object ChartToolset1DataPointDragTool1: TDataPointDragTool
Shift = [ssLeft]
AffectedSeries = '1'
end
end
object catIndependent1: TChartAxisTransformations
Left = 220
Top = 176
object catIndependent1Zoom: TLinearAxisTransform
end
end
object catIndependent2: TChartAxisTransformations
Left = 220
Top = 236
object catIndependent2Zoom: TLinearAxisTransform
end
end
object AxLabelSource: TListChartSource
Left = 311
Top = 305
end
object catCumulNormDistr: TChartAxisTransformations
Left = 310
Top = 305
object catCumulNormDistrLinearAxisTransform1: TLinearAxisTransform
Enabled = False
Scale = 0.01
end
object catCumulNormDistrCumulNormDistrAxisTransform1: TCumulNormDistrAxisTransform
Enabled = False
end
end
end