home *** CD-ROM | disk | FTP | other *** search
/ PC Expert 29 / Pce29cd.iso / RUNIMAGE / DELPHI40 / DEMOS / TEECHART / UARROWS.PAS < prev    next >
Pascal/Delphi Source File  |  1998-06-16  |  2KB  |  102 lines

  1. {*********************************************}
  2. { TeeChart Delphi Component Library           }
  3. { TArrowSeries Example                        }
  4. { Copyright (c) 1995-1996 by David Berneda    }
  5. { All rights reserved                         }
  6. {*********************************************}
  7. unit Uarrows;
  8.  
  9. interface
  10.  
  11. uses
  12.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  13.   Forms, Dialogs, Teengine, Series, ArrowCha, Chart, StdCtrls, ExtCtrls,
  14.   Buttons, TeeProcs;
  15.  
  16. type
  17.   TArrowsForm = class(TForm)
  18.     Panel1: TPanel;
  19.     CheckBox1: TCheckBox;
  20.     Chart1: TChart;
  21.     ArrowSeries1: TArrowSeries;
  22.     Timer1: TTimer;
  23.     BitBtn3: TBitBtn;
  24.     Memo1: TMemo;
  25.     procedure FormCreate(Sender: TObject);
  26.     procedure CheckBox1Click(Sender: TObject);
  27.     procedure Timer1Timer(Sender: TObject);
  28.   private
  29.     { Private declarations }
  30.   public
  31.     { Public declarations }
  32.     procedure AddRandomArrows;
  33.   end;
  34.  
  35. implementation
  36.  
  37. {$R *.DFM}
  38.  
  39. procedure TArrowsForm.FormCreate(Sender: TObject);
  40. begin
  41.   With ArrowSeries1 do
  42.   Begin
  43.     ArrowWidth:=32;
  44.     ArrowHeight:=24;
  45.     ColorEachPoint:=True;
  46.     XValues.DateTime:=False;
  47.     YValues.DateTime:=False;
  48.  
  49.     AddRandomArrows;
  50.   end;
  51. end;
  52.  
  53. procedure TArrowsForm.AddRandomArrows;
  54. var x0,y0,x1,y1:Double;
  55.     t:Longint;
  56. begin
  57.   With ArrowSeries1 do
  58.   Begin
  59.     Clear;
  60.     for t:=1 to 40 do
  61.     begin
  62.       x0:=Random( 1000 );
  63.       y0:=Random( 1000 );
  64.  
  65.       x1:=Random( 300 ) - 150.0;
  66.       if x1<50 then x1:=50;
  67.       x1:=x1+x0;
  68.  
  69.       y1:=Random( 300 ) - 150.0;
  70.       if y1<50 then y1:=50;
  71.       y1:=y1+y0;
  72.  
  73.       AddArrow( x0,y0,x1,y1, '', clTeeColor );
  74.     end;
  75.   end;
  76. end;
  77.  
  78. procedure TArrowsForm.CheckBox1Click(Sender: TObject);
  79. begin
  80.   Timer1.Enabled:=CheckBox1.Checked;
  81. end;
  82.  
  83. procedure TArrowsForm.Timer1Timer(Sender: TObject);
  84. var t:Longint;
  85. begin
  86.   Timer1.Enabled:=False;
  87.   With ArrowSeries1 do
  88.   Begin
  89.     for t:=0 to Count-1 do
  90.     Begin
  91.       StartXValues[t]:=StartXValues[t]+Random(100)-50.0;
  92.       StartYValues[t]:=StartYValues[t]+Random(100)-50.0;
  93.       EndXValues[t]  :=EndXValues[t]+Random(100)-50.0;
  94.       EndYValues[t]  :=EndYValues[t]+Random(100)-50.0;
  95.     End;
  96.     Repaint;
  97.   End;
  98.   Timer1.Enabled:=True;
  99. end;
  100.  
  101. end.
  102.