home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / TeeChartPro / TeeChart5Delphi5Eval.exe / %MAINDIR% / Examples / Features / Function_CurveFitting.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-09-10  |  2.0 KB  |  83 lines

  1. unit Function_CurveFitting;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Base, ComCtrls, StdCtrls, TeEngine, CurvFitt, Series, ExtCtrls, TeeProcs,
  8.   Chart;
  9.  
  10. type
  11.   TCurveFittingForm = class(TBaseForm)
  12.     Data: TFastLineSeries;
  13.     Curve1: TFastLineSeries;
  14.     Curve2: TFastLineSeries;
  15.     TeeFunction1: TCurveFittingFunction;
  16.     TeeFunction2: TCurveFittingFunction;
  17.     CheckBox1: TCheckBox;
  18.     Label1: TLabel;
  19.     Edit1: TEdit;
  20.     UpDown1: TUpDown;
  21.     Edit2: TEdit;
  22.     UpDown2: TUpDown;
  23.     Label2: TLabel;
  24.     Timer1: TTimer;
  25.     procedure FormCreate(Sender: TObject);
  26.     procedure Edit1Change(Sender: TObject);
  27.     procedure Edit2Change(Sender: TObject);
  28.     procedure CheckBox1Click(Sender: TObject);
  29.     procedure Timer1Timer(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.   public
  33.     { Public declarations }
  34.   end;
  35.  
  36. implementation
  37.  
  38. {$R *.DFM}
  39.  
  40. procedure TCurveFittingForm.FormCreate(Sender: TObject);
  41. begin
  42.   inherited;
  43.   Curve1.RecalcOptions:=[rOnInsert,rOnClear];
  44.   Data.FillSampleValues(200); { <-- Some random points }
  45. end;
  46.  
  47. procedure TCurveFittingForm.Edit1Change(Sender: TObject);
  48. begin
  49.   TeeFunction1.PolyDegree:=UpDown1.Position;
  50. end;
  51.  
  52. procedure TCurveFittingForm.Edit2Change(Sender: TObject);
  53. begin
  54.   TeeFunction2.PolyDegree:=UpDown2.Position;
  55. end;
  56.  
  57. procedure TCurveFittingForm.CheckBox1Click(Sender: TObject);
  58. begin
  59.   Timer1.Enabled:=CheckBox1.Checked;
  60. end;
  61.  
  62. procedure TCurveFittingForm.Timer1Timer(Sender: TObject);
  63. begin
  64.   Timer1.Enabled:=False; { <-- stop timer }
  65.   With Data do
  66.   Begin
  67.     Delete(0); { <-- remove the first point }
  68.  
  69.     { Add a new random point }
  70.     AddXY( XValues.Last+1,
  71.            YValues.Last+(Random(ChartSamplesMax)-(ChartSamplesMax/2)),
  72.            '',clTeeColor);
  73.  
  74.     Curve1.CheckDataSource; { <-- fill again the points }
  75.     Curve2.CheckDataSource; { <-- fill again the points }
  76.   end;
  77.   Timer1.Enabled:=True; { <-- restart timer }
  78. end;
  79.  
  80. initialization
  81.   RegisterClass(TCurveFittingForm);
  82. end.
  83.