TAChart: Extend fit demo to show FitSeries.LegendText as HTML.

git-svn-id: trunk@60560 -
This commit is contained in:
wp 2019-03-02 16:33:33 +00:00
parent 7d71b4d1ac
commit 71d732e388
2 changed files with 37 additions and 2 deletions

View File

@ -615,6 +615,7 @@ object frmMain: TfrmMain
Pointer.Visible = True
Source = ListChartSource
OnFitComplete = FitCompleteHandler
OnFitEquationText = FitSeriesFitEquationText
end
object UpperConfIntervalSeries: TFuncSeries
Active = False
@ -727,6 +728,20 @@ object frmMain: TfrmMain
OnChange = cbShowPredictionIntervalsChange
TabOrder = 4
end
object CbHTML: TCheckBox
AnchorSideLeft.Control = cbShowConfidenceIntervals
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = pnlLog
AnchorSideTop.Side = asrCenter
Left = 413
Height = 19
Top = 12
Width = 53
BorderSpacing.Left = 20
Caption = 'HTML'
OnChange = CbHTMLChange
TabOrder = 5
end
end
end
object Splitter1: TSplitter

View File

@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, Spin, Buttons, ComCtrls,
TAGraph, TASources, TAFuncSeries, TATransformations, Types;
TAGraph, TASources, TAFuncSeries, TATransformations, Types, TAFitUtils;
type
@ -24,6 +24,7 @@ type
cbShowErrorbars: TCheckBox;
cbShowConfidenceIntervals: TCheckBox;
cbShowPredictionIntervals: TCheckBox;
CbHTML: TCheckBox;
UpperConfIntervalSeries: TFuncSeries;
LowerConfIntervalSeries: TFuncSeries;
UpperPredIntervalSeries: TFuncSeries;
@ -70,10 +71,13 @@ type
procedure btnSaveClick(Sender: TObject);
procedure cbDrawFitRangeOnlyClick(Sender: TObject);
procedure cbFitEquationSelect(Sender: TObject);
procedure CbHTMLChange(Sender: TObject);
procedure cbShowConfidenceIntervalsChange(Sender: TObject);
procedure cbShowErrorbarsChange(Sender: TObject);
procedure cbShowPredictionIntervalsChange(Sender: TObject);
procedure EdPointsCountChange(Sender: TObject);
procedure FitSeriesFitEquationText(ASeries: TFitSeries;
AEquationText: IFitEquationText);
procedure FixedParamsChanged(Sender: TObject);
procedure cbFitRangeUseMaxClick(Sender:TObject);
procedure cbFitRangeUseMinClick(Sender:TObject);
@ -104,7 +108,7 @@ implementation
uses
Math, typ, spe, StrUtils,
TAChartAxis, TATypes, TAChartUtils, TACustomSource, TAFitLib, TAFitUtils;
TAChartAxis, TATypes, TAChartUtils, TACustomSource, TAFitLib;
const
// Parameters used for data generation; should be reproduced by the fit.
@ -239,6 +243,12 @@ begin
end;
end;
procedure TfrmMain.CbHTMLChange(Sender: TObject);
begin
if CbHtml.Checked then Chart.Legend.TextFormat := tfHTML else Chart.Legend.TextFormat := tfNormal;
FitSeries.Title := 'fitted data'; // the fit equation is appended automatically
end;
procedure TfrmMain.cbShowConfidenceIntervalsChange(Sender: TObject);
begin
UpperConfIntervalSeries.Active := cbShowConfidenceIntervals.Checked;
@ -275,6 +285,16 @@ begin
CreateData;
end;
procedure TfrmMain.FitSeriesFitEquationText(ASeries: TFitSeries;
AEquationText: IFitEquationText);
begin
AEquationText.NumFormat('%.5f');
if CbHTML.Checked then
AEquationText.TextFormat(tfHtml)
else
AEquationText.TextFormat(tfNormal);
end;
procedure TfrmMain.FixedParamsChanged(Sender: TObject);
begin
FitSeries.FixedParams := PrepareFixedParams;