home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / Delphi1_And_Delphi2 / EXAMPLES / EXTENDED / UCURVE.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-10-24  |  1.9 KB  |  79 lines

  1. {****************************************}
  2. {    TeeChart. TChart Component          }
  3. { Copyright (c) 1995-98 by David Berneda }
  4. {    All Rights Reserved                 }
  5. {****************************************}
  6. unit Ucurve;
  7.  
  8. interface
  9.  
  10. uses
  11.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  12.   Forms, Dialogs, StdCtrls, TeEngine, CurvFitt, Series, ExtCtrls, TeeProcs,
  13.   Chart, TeeComma;
  14.  
  15. type
  16.   TFormCurveFitting = class(TForm)
  17.     Chart1: TChart;
  18.     Series1: TLineSeries;
  19.     TeeFunction1: TCurveFittingFunction;
  20.     Series2: TPointSeries;
  21.     Memo1: TMemo;
  22.     Panel1: TPanel;
  23.     Button2: TButton;
  24.     Button3: TButton;
  25.     Button1: TButton;
  26.     TeeCommander1: TTeeCommander;
  27.     procedure FormCreate(Sender: TObject);
  28.     procedure Button1Click(Sender: TObject);
  29.     procedure Button2Click(Sender: TObject);
  30.     procedure Button3Click(Sender: TObject);
  31.   private
  32.     { Private declarations }
  33.   public
  34.     { Public declarations }
  35.   end;
  36.  
  37. implementation
  38.  
  39. {$R *.DFM}
  40.  
  41. procedure TFormCurveFitting.FormCreate(Sender: TObject);
  42. begin
  43.   Series1.FillSampleValues(5); { small number of sample values }
  44. end;
  45.  
  46. procedure TFormCurveFitting.Button1Click(Sender: TObject);
  47. begin
  48.   Close;
  49. end;
  50.  
  51. procedure TFormCurveFitting.Button2Click(Sender: TObject);
  52. var tmpX,tmpY:Double;
  53.     t:Integer;
  54. begin
  55.   t:=0;
  56.   With Series2 do
  57.   While t<Count-1 do
  58.   begin
  59.     { calculate the X position between points (in the middle) }
  60.     tmpX:=( XValues[t] + XValues[t+1] ) / 2.0 ;
  61.  
  62.     { calculate the Curve Y position for the X }
  63.     tmpY:=TeeFunction1.GetCurveYValue(Series1,tmpX);
  64.  
  65.     { insert the new point }
  66.     AddXY( tmpX,tmpY, '', clTeeColor);
  67.  
  68.     { increment the counter }
  69.     Inc(t,2);
  70.   end;
  71. end;
  72.  
  73. procedure TFormCurveFitting.Button3Click(Sender: TObject);
  74. begin
  75.   Series2.CheckDataSource; { recalculate the default curve }
  76. end;
  77.  
  78. end.
  79.