home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / D / MATEM.ARJ / RCHART.ZIP / exmpl-7 / pas / Timser.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1998-08-15  |  4.4 KB  |  156 lines

  1. unit Timser;
  2.  
  3. (******************************************************************)
  4. (*                                                                *)
  5. (*  Please note that this sample program uses the component       *)
  6. (*  TNumLab, which is not contained in this package. A shareware  *)
  7. (*  version of TNumLab can be downloaded from the following URL:  *)
  8. (*                                                                *)
  9. (*  http://www.lohninger.com/                                     *)
  10. (*    (look for the Delphi components page)                       *)
  11. (*                                                                *)
  12. (******************************************************************)
  13.  
  14.  
  15. interface
  16.  
  17. uses
  18.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  19.   Forms, Dialogs, RChart, StdCtrls, printers, NumLab, ExtCtrls;
  20.  
  21. type
  22.   TForm1 = class(TForm)
  23.     RChart1: TRChart;
  24.     ButDone: TButton;
  25.     CBMX: TCheckBox;
  26.     CBMY: TCheckBox;
  27.     NumLab1: TNumLab;
  28.     NumLab2: TNumLab;
  29.     procedure FormActivate(Sender: TObject);
  30.     procedure ButDoneClick(Sender: TObject);
  31.     procedure CBMXClick(Sender: TObject);
  32.     procedure CBMYClick(Sender: TObject);
  33.     procedure RChart1MouseMoveInChart(Sender: TObject; InChart: Boolean;
  34.       Shift: TShiftState; rMousePosX, rMousePosY: Double);
  35.     procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  36.       Y: Integer);
  37.     procedure FormShow(Sender: TObject);
  38.   private
  39.     procedure SetCrossHair;
  40.   public
  41.     { Public declarations }
  42.   end;
  43.  
  44. var
  45.   Form1: TForm1;
  46.  
  47. implementation
  48.  
  49. {$R *.DFM}
  50.  
  51. (*******************************************************************)
  52. procedure TForm1.FormActivate(Sender: TObject);
  53. (*******************************************************************)
  54.  
  55. const
  56.   Numval = 800;
  57.  
  58. var
  59.   i : integer;
  60.  
  61. begin
  62. RChart1.RangeHiX := NumVal;
  63. RChart1.RangeLoX := 0;
  64. RChart1.RangeHiY := 150;
  65. RChart1.RangeLoY := -30;
  66. RChart1.DataColor := clBlue;
  67. RCHart1.MoveTo (0,0);
  68. for i:=1 to NumVal do
  69.   RChart1.DrawTo (i,i/10+i/30*sin(i*0.04)+20*(random+random));
  70. RChart1.DataColor := clRed;
  71. RChart1.MoveTo (0,40);
  72. for i:=1 to NumVal do
  73.   RChart1.DrawTo (i,40+i/20*sin(i*0.05));
  74. end;
  75.  
  76. (*******************************************************************)
  77. procedure TForm1.SetCrossHair;
  78. (*******************************************************************)
  79.  
  80. begin
  81. if CBMX.Checked
  82.   then begin
  83.        if CBMY.Checked
  84.          then RChart1.CrossHairSetup (1, clTeal, chBoth, psSolid, 1)
  85.          else RChart1.CrossHairSetup (1, clTeal, chVert, psSolid, 1);
  86.        end
  87.   else begin
  88.        if CBMY.Checked
  89.          then RChart1.CrossHairSetup (1, clTeal, chHoriz, psSolid, 1)
  90.          else RChart1.CrossHairSetup (1, clTeal, chOff, psSolid, 1);
  91.        end;
  92.  
  93. end;
  94.  
  95.  
  96. (*******************************************************************)
  97. procedure TForm1.ButDoneClick(Sender: TObject);
  98. (*******************************************************************)
  99.  
  100. begin
  101. close;
  102. end;
  103.  
  104. (*******************************************************************)
  105. procedure TForm1.CBMXClick(Sender: TObject);
  106. (*******************************************************************)
  107.  
  108. begin
  109. Numlab1.Visible := CBMX.Checked;
  110. SetCrossHair;
  111. end;
  112.  
  113. (*******************************************************************)
  114. procedure TForm1.CBMYClick(Sender: TObject);
  115. (*******************************************************************)
  116.  
  117. begin
  118. NumLab2.Visible := CBMY.Checked;
  119. SetCrossHair;
  120. end;
  121.  
  122.  
  123. (*******************************************************************)
  124. procedure TForm1.RChart1MouseMoveInChart(Sender: TObject; InChart: Boolean;
  125.   Shift: TShiftState; rMousePosX, rMousePosY: Double);
  126. (*******************************************************************)
  127.  
  128. begin
  129. NumLab1.Empty := not Inchart;
  130. NumLab2.Empty := not Inchart;
  131. NumLab1.Value := rMousePosX;
  132. NumLab2.Value := rMousePosY;
  133. RChart1.CrossHairSetPos (1, rMousePosX, rMousePosY);
  134. end;
  135.  
  136.  
  137. (*******************************************************************)
  138. procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  139.   Y: Integer);
  140. (*******************************************************************)
  141.  
  142. begin
  143. Screen.Cursor := crDefault;
  144. end;
  145.  
  146. (*******************************************************************)
  147. procedure TForm1.FormShow(Sender: TObject);
  148. (*******************************************************************)
  149.  
  150. begin
  151. SetCrossHair;
  152.  
  153. end;
  154.  
  155. end.
  156.