mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-02 03:19:36 +01:00
TAChart: Add "Auto Y extent" page to the "func" demo
git-svn-id: trunk@38731 -
This commit is contained in:
parent
3acae5fe9f
commit
2974002ed0
@ -57,6 +57,7 @@
|
||||
<Filename Value="main.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="main"/>
|
||||
</Unit1>
|
||||
@ -69,11 +70,6 @@
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<UseAnsiStrings Value="False"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
<Linking>
|
||||
<Options>
|
||||
<Win32>
|
||||
|
||||
@ -7,7 +7,7 @@ object Form1: TForm1
|
||||
ClientHeight = 459
|
||||
ClientWidth = 550
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '0.9.31'
|
||||
LCLVersion = '1.1'
|
||||
object PageControl1: TPageControl
|
||||
Left = 0
|
||||
Height = 459
|
||||
@ -17,6 +17,7 @@ object Form1: TForm1
|
||||
Align = alClient
|
||||
TabIndex = 0
|
||||
TabOrder = 0
|
||||
OnChange = PageControl1Change
|
||||
object tsDomain: TTabSheet
|
||||
Caption = 'Domain'
|
||||
ClientHeight = 433
|
||||
@ -58,7 +59,6 @@ object Form1: TForm1
|
||||
object Chart1FuncSeries1: TFuncSeries
|
||||
Extent.UseXMax = True
|
||||
Extent.UseXMin = True
|
||||
Extent.UseYMin = True
|
||||
Extent.XMax = 6.28
|
||||
Extent.XMin = -6.28
|
||||
Extent.YMax = 2
|
||||
@ -303,9 +303,9 @@ object Form1: TForm1
|
||||
end
|
||||
object lblSplineDegree: TLabel
|
||||
Left = 12
|
||||
Height = 14
|
||||
Height = 13
|
||||
Top = 8
|
||||
Width = 36
|
||||
Width = 35
|
||||
Caption = 'Degree'
|
||||
ParentColor = False
|
||||
end
|
||||
@ -345,6 +345,67 @@ object Form1: TForm1
|
||||
end
|
||||
end
|
||||
end
|
||||
object tsAutoExtentY: TTabSheet
|
||||
Caption = 'Auto Y extent'
|
||||
ClientHeight = 433
|
||||
ClientWidth = 542
|
||||
object chAutoExtentY: TChart
|
||||
Left = 0
|
||||
Height = 402
|
||||
Top = 0
|
||||
Width = 542
|
||||
AxisList = <
|
||||
item
|
||||
Minors = <>
|
||||
Title.LabelFont.Orientation = 900
|
||||
end
|
||||
item
|
||||
Alignment = calBottom
|
||||
Minors = <>
|
||||
end>
|
||||
Foot.Brush.Color = clBtnFace
|
||||
Foot.Font.Color = clBlue
|
||||
Title.Brush.Color = clBtnFace
|
||||
Title.Font.Color = clBlue
|
||||
Title.Text.Strings = (
|
||||
'TAChart'
|
||||
)
|
||||
Align = alClient
|
||||
DoubleBuffered = True
|
||||
ParentColor = False
|
||||
object chAutoExtentYFuncSeries1: TFuncSeries
|
||||
Extent.UseXMax = True
|
||||
Extent.UseXMin = True
|
||||
Extent.UseYMax = True
|
||||
Extent.UseYMin = True
|
||||
Extent.XMax = 1
|
||||
Extent.YMax = 5
|
||||
Extent.YMin = -5
|
||||
OnCalculate = chAutoExtentYFuncSeries1Calculate
|
||||
Pen.Color = 16711808
|
||||
Pen.Width = 2
|
||||
end
|
||||
end
|
||||
object pnlAutoExtentY: TPanel
|
||||
Left = 0
|
||||
Height = 31
|
||||
Top = 402
|
||||
Width = 542
|
||||
Align = alBottom
|
||||
ClientHeight = 31
|
||||
ClientWidth = 542
|
||||
TabOrder = 1
|
||||
object cbAutoExtentY: TCheckBox
|
||||
Left = 8
|
||||
Height = 17
|
||||
Top = 8
|
||||
Width = 87
|
||||
Caption = 'Auto Y extent'
|
||||
OnChange = cbAutoExtentYChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object UserDefinedChartSource1: TUserDefinedChartSource
|
||||
OnGetChartDataItem = UserDefinedChartSource1GetChartDataItem
|
||||
@ -391,4 +452,10 @@ object Form1: TForm1
|
||||
Base = 10
|
||||
end
|
||||
end
|
||||
object Timer1: TTimer
|
||||
Interval = 200
|
||||
OnTimer = Timer1Timer
|
||||
left = 448
|
||||
top = 296
|
||||
end
|
||||
end
|
||||
|
||||
@ -28,6 +28,7 @@ type
|
||||
Chart1YAxis: TConstantLine;
|
||||
catSpline: TChartAxisTransformations;
|
||||
catSplineLogarithmAxisTransform: TLogarithmAxisTransform;
|
||||
chAutoExtentY: TChart;
|
||||
ChartSpline: TChart;
|
||||
ChartColorMap: TChart;
|
||||
ChartColorMapColorMapSeries1: TColorMapSeries;
|
||||
@ -35,6 +36,8 @@ type
|
||||
ChartSplineCubicSplineSeries1: TCubicSplineSeries;
|
||||
ChartSplineLineSeries1: TLineSeries;
|
||||
ChartSplineBSplineSeries1: TBSplineSeries;
|
||||
cbAutoExtentY: TCheckBox;
|
||||
chAutoExtentYFuncSeries1: TFuncSeries;
|
||||
chtsColorMap: TChartToolset;
|
||||
chtsColorMapPanDragTool1: TPanDragTool;
|
||||
chtsColorMapZoomDragTool1: TZoomDragTool;
|
||||
@ -42,16 +45,20 @@ type
|
||||
ListChartSource1: TListChartSource;
|
||||
PageControl1: TPageControl;
|
||||
Panel1: TPanel;
|
||||
pnlAutoExtentY: TPanel;
|
||||
pnSpline: TPanel;
|
||||
RandomChartSource1: TRandomChartSource;
|
||||
iseSplineDegree: TTISpinEdit;
|
||||
icbSplineRandomX: TTICheckBox;
|
||||
cbCubic: TTICheckBox;
|
||||
Timer1: TTimer;
|
||||
tsAutoExtentY: TTabSheet;
|
||||
tsSpline: TTabSheet;
|
||||
tsDomain: TTabSheet;
|
||||
tsColorMap: TTabSheet;
|
||||
Splitter1: TSplitter;
|
||||
UserDefinedChartSource1: TUserDefinedChartSource;
|
||||
procedure cbAutoExtentYChange(Sender: TObject);
|
||||
procedure cbDomainChange(Sender: TObject);
|
||||
procedure cbInterpolateChange(Sender: TObject);
|
||||
procedure cbMultLegendChange(Sender: TObject);
|
||||
@ -60,7 +67,11 @@ type
|
||||
procedure Chart1UserDrawnSeries1Draw(ACanvas: TCanvas; const ARect: TRect);
|
||||
procedure ChartColorMapColorMapSeries1Calculate(const AX, AY: Double; out
|
||||
AZ: Double);
|
||||
procedure chAutoExtentYFuncSeries1Calculate(const AX: Double; out
|
||||
AY: Double);
|
||||
procedure iseSplineDegreeChange(Sender: TObject);
|
||||
procedure PageControl1Change(Sender: TObject);
|
||||
procedure Timer1Timer(Sender: TObject);
|
||||
procedure UserDefinedChartSource1GetChartDataItem(
|
||||
ASource: TUserDefinedChartSource; AIndex: Integer;
|
||||
var AItem: TChartDataItem);
|
||||
@ -78,6 +89,11 @@ uses
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.cbAutoExtentYChange(Sender: TObject);
|
||||
begin
|
||||
chAutoExtentYFuncSeries1.ExtentAutoY := cbAutoExtentY.Checked;
|
||||
end;
|
||||
|
||||
procedure TForm1.cbDomainChange(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
@ -130,6 +146,7 @@ var
|
||||
b: TDoublePoint = (X: 1; Y: 1);
|
||||
r: TRect;
|
||||
begin
|
||||
Unused(ARect);
|
||||
r.TopLeft := Chart1.GraphToImage(a);
|
||||
r.BottomRight := Chart1.GraphToImage(b);
|
||||
ACanvas.Pen.Mode := pmCopy;
|
||||
@ -145,11 +162,30 @@ begin
|
||||
AZ := Sin(10 * Sqr(AX) + 17 * Sqr(AY));
|
||||
end;
|
||||
|
||||
procedure TForm1.chAutoExtentYFuncSeries1Calculate(
|
||||
const AX: Double; out AY: Double);
|
||||
begin
|
||||
AY := Sin(AX * 2) + 3 * Cos(AX * 3) + 2 * Cos(AX * AX * 5);
|
||||
end;
|
||||
|
||||
procedure TForm1.iseSplineDegreeChange(Sender: TObject);
|
||||
begin
|
||||
(Sender as TTISpinEdit).EditingDone;
|
||||
end;
|
||||
|
||||
procedure TForm1.PageControl1Change(Sender: TObject);
|
||||
begin
|
||||
Timer1.Enabled := PageControl1.ActivePage = tsAutoExtentY;
|
||||
end;
|
||||
|
||||
procedure TForm1.Timer1Timer(Sender: TObject);
|
||||
begin
|
||||
with chAutoExtentYFuncSeries1.Extent do begin
|
||||
XMin := XMin + 0.05;
|
||||
XMax := XMax + 0.05;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.UserDefinedChartSource1GetChartDataItem(
|
||||
ASource: TUserDefinedChartSource; AIndex: Integer; var AItem: TChartDataItem);
|
||||
begin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user