home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / matemat / Vyssi / FOURIER.ZIP / exmpl-2 / pas / umainfrm.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-08-08  |  7.5 KB  |  262 lines

  1. unit umainfrm;
  2.  
  3. {===========================================================
  4.  Please note, that the program FOURSYNT uses the unit RChart,
  5.  which is not supplied with the FOURIER package. If you
  6.  don't have it, you can download the shareware version from
  7.  one of the following WWW sites:
  8.      http://qspr03.tuwien.ac.at/lo/
  9.      http://www.lohninger.com/
  10.  ===========================================================}
  11.  
  12.  
  13. interface
  14.  
  15. uses
  16.   WinTypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  17.   StdCtrls, Buttons, RChart, fourier;
  18.  
  19. type
  20.   TForm1 = class(TForm)
  21.     ScrollBar1: TScrollBar;
  22.     ScrollBar2: TScrollBar;
  23.     ScrollBar3: TScrollBar;
  24.     ScrollBar4: TScrollBar;
  25.     ScrollBar5: TScrollBar;
  26.     ScrollBar6: TScrollBar;
  27.     ScrollBar7: TScrollBar;
  28.     ScrollBar8: TScrollBar;
  29.     ScrollBar9: TScrollBar;
  30.     ScrollBar10: TScrollBar;
  31.     ScrollBar11: TScrollBar;
  32.     ScrollBar12: TScrollBar;
  33.     ScrollBar13: TScrollBar;
  34.     ScrollBar14: TScrollBar;
  35.     ScrollBar15: TScrollBar;
  36.     ScrollBar16: TScrollBar;
  37.     RChart1: TRChart;
  38.     BButReset: TBitBtn;
  39.     BButSquare: TBitBtn;
  40.     BButSaw: TBitBtn;
  41.     BButExit: TBitBtn;
  42.     BButHalfSine: TBitBtn;
  43.     Label1: TLabel;
  44.     BButTriangle: TBitBtn;
  45.     FastFourier1: TFastFourier;
  46.     procedure BButResetClick(Sender: TObject);
  47.     procedure FormCreate(Sender: TObject);
  48.     procedure ScrollBar8Change(Sender: TObject);
  49.     procedure BButSquareClick(Sender: TObject);
  50.     procedure BButSawClick(Sender: TObject);
  51.     procedure BButExitClick(Sender: TObject);
  52.     procedure BButHalfSineClick(Sender: TObject);
  53.     procedure BButTriangleClick(Sender: TObject);
  54.   private
  55.     { Private declarations }
  56.   public
  57.     { Public declarations }
  58.   end;
  59.  
  60. var
  61.   Form1: TForm1;
  62.  
  63. implementation
  64.  
  65.  
  66. {$R *.DFM}
  67.  
  68. var
  69.   UpDateSignal : boolean;
  70.  
  71.  
  72. (**********************************************************)
  73. procedure TForm1.BButResetClick(Sender: TObject);
  74. (**********************************************************)
  75.  
  76. begin
  77. UpdateSignal := false;
  78. ScrollBar1.Position := 0;
  79. ScrollBar2.Position := 0;
  80. ScrollBar3.Position := 0;
  81. ScrollBar4.Position := 0;
  82. ScrollBar5.Position := 0;
  83. ScrollBar6.Position := 0;
  84. ScrollBar7.Position := 0;
  85. ScrollBar8.Position := 0;
  86. ScrollBar9.Position := 0;
  87. ScrollBar10.Position := 0;
  88. ScrollBar11.Position := 0;
  89. ScrollBar12.Position := 0;
  90. ScrollBar13.Position := 0;
  91. ScrollBar14.Position := 0;
  92. ScrollBar15.Position := 0;
  93. ScrollBar16.Position := 0;
  94. UpdateSignal := true;
  95. Scrollbar8Change (Sender);
  96. end;
  97.  
  98.  
  99. (**********************************************************)
  100. procedure TForm1.FormCreate(Sender: TObject);
  101. (**********************************************************)
  102.  
  103. begin
  104. UpDateSignal := True;
  105. end;
  106.  
  107.  
  108. (**********************************************************)
  109. procedure TForm1.ScrollBar8Change(Sender: TObject);
  110. (**********************************************************)
  111.  
  112. var
  113.   i    : integer;
  114.  
  115. begin
  116. FastFourier1.Clear;
  117. FastFourier1.RealSpec[1] := ScrollBar1.Position/100*FastFourier1.SpectrumSize;
  118. FastFourier1.RealSpec[2] := ScrollBar2.Position/100*FastFourier1.SpectrumSize;
  119. FastFourier1.RealSpec[3] := ScrollBar3.Position/100*FastFourier1.SpectrumSize;
  120. FastFourier1.RealSpec[4] := ScrollBar4.Position/100*FastFourier1.SpectrumSize;
  121. FastFourier1.RealSpec[5] := ScrollBar5.Position/100*FastFourier1.SpectrumSize;
  122. FastFourier1.RealSpec[6] := ScrollBar6.Position/100*FastFourier1.SpectrumSize;
  123. FastFourier1.RealSpec[7] := ScrollBar7.Position/100*FastFourier1.SpectrumSize;
  124. FastFourier1.RealSpec[8] := ScrollBar8.Position/100*FastFourier1.SpectrumSize;
  125. FastFourier1.ImagSpec[1] := ScrollBar9.Position/100*FastFourier1.SpectrumSize;
  126. FastFourier1.ImagSpec[2] := ScrollBar10.Position/100*FastFourier1.SpectrumSize;
  127. FastFourier1.ImagSpec[3] := ScrollBar11.Position/100*FastFourier1.SpectrumSize;
  128. FastFourier1.ImagSpec[4] := ScrollBar12.Position/100*FastFourier1.SpectrumSize;
  129. FastFourier1.ImagSpec[5] := ScrollBar13.Position/100*FastFourier1.SpectrumSize;
  130. FastFourier1.ImagSpec[6] := ScrollBar14.Position/100*FastFourier1.SpectrumSize;
  131. FastFourier1.ImagSpec[7] := ScrollBar15.Position/100*FastFourier1.SpectrumSize;
  132. FastFourier1.ImagSpec[8] := ScrollBar16.Position/100*FastFourier1.SpectrumSize;
  133. if UpdateSignal then
  134.   begin
  135.   FastFourier1.InverseTransform;
  136.   RChart1.ClearGraf;
  137.   RChart1.DataCOlor :=clNavy;
  138.   RChart1.MoveTo (1,FastFourier1.RealSpec[1]);
  139.   for i:=1 to 512 do
  140.     RChart1.DrawTo (i,FastFourier1.RealSpec[1 + (i-1) mod 256]);
  141.   RChart1.ShowGraf;
  142.   end;
  143. end;
  144.  
  145.  
  146. (**********************************************************)
  147. procedure TForm1.BButSquareClick(Sender: TObject);
  148. (**********************************************************)
  149.  
  150. begin
  151. UpdateSignal := false;
  152. ScrollBar1.Position := 0;
  153. ScrollBar2.Position := 100;
  154. ScrollBar3.Position := 0;
  155. ScrollBar4.Position := -33;
  156. ScrollBar5.Position := 0;
  157. ScrollBar6.Position := 20;
  158. ScrollBar7.Position := 0;
  159. ScrollBar8.Position := -16;
  160. ScrollBar9.Position := 0;
  161. ScrollBar10.Position := 0;
  162. ScrollBar11.Position := 0;
  163. ScrollBar12.Position := 0;
  164. ScrollBar13.Position := 0;
  165. ScrollBar14.Position := 0;
  166. ScrollBar15.Position := 0;
  167. ScrollBar16.Position := 0;
  168. UpdateSignal := true;
  169. Scrollbar8Change (Sender);
  170. end;
  171.  
  172. (**********************************************************)
  173. procedure TForm1.BButSawClick(Sender: TObject);
  174. (**********************************************************)
  175.  
  176. begin
  177. UpdateSignal := false;
  178. ScrollBar1.Position := 0;
  179. ScrollBar2.Position := 0;
  180. ScrollBar3.Position := 0;
  181. ScrollBar4.Position := 0;
  182. ScrollBar5.Position := 0;
  183. ScrollBar6.Position := 0;
  184. ScrollBar7.Position := 0;
  185. ScrollBar8.Position := 0;
  186. ScrollBar9.Position := 0;
  187. ScrollBar10.Position := 100;
  188. ScrollBar11.Position := 50;
  189. ScrollBar12.Position := 33;
  190. ScrollBar13.Position := 25;
  191. ScrollBar14.Position := 20;
  192. ScrollBar15.Position := 16;
  193. ScrollBar16.Position := 14;
  194. UpdateSignal := true;
  195. Scrollbar8Change (Sender);
  196. end;
  197.  
  198.  
  199. (**********************************************************)
  200. procedure TForm1.BButExitClick(Sender: TObject);
  201. (**********************************************************)
  202.  
  203. begin
  204. close;
  205. end;
  206.  
  207. (**********************************************************)
  208. procedure TForm1.BButHalfSineClick(Sender: TObject);
  209. (**********************************************************)
  210.  
  211. begin
  212. UpdateSignal := false;
  213. ScrollBar1.Position := 63;
  214. ScrollBar2.Position := 100;
  215. ScrollBar3.Position := 42;
  216. ScrollBar4.Position := 0;
  217. ScrollBar5.Position := -8;
  218. ScrollBar6.Position := 0;
  219. ScrollBar7.Position := 4;
  220. ScrollBar8.Position := 0;
  221. ScrollBar9.Position := 0;
  222. ScrollBar10.Position := 0;
  223. ScrollBar11.Position := 0;
  224. ScrollBar12.Position := 0;
  225. ScrollBar13.Position := 0;
  226. ScrollBar14.Position := 0;
  227. ScrollBar15.Position := 0;
  228. ScrollBar16.Position := 0;
  229. UpdateSignal := true;
  230. Scrollbar8Change (Sender);
  231. end;
  232.  
  233.  
  234. (**********************************************************)
  235. procedure TForm1.BButTriangleClick(Sender: TObject);
  236. (**********************************************************)
  237.  
  238. begin
  239. UpdateSignal := false;
  240. ScrollBar1.Position := 0;
  241. ScrollBar2.Position := 0;
  242. ScrollBar3.Position := 0;
  243. ScrollBar4.Position := 0;
  244. ScrollBar5.Position := 0;
  245. ScrollBar6.Position := 0;
  246. ScrollBar7.Position := 0;
  247. ScrollBar8.Position := 0;
  248. ScrollBar9.Position := 0;
  249. ScrollBar10.Position := 100;
  250. ScrollBar11.Position := 0;
  251. ScrollBar12.Position := -11;
  252. ScrollBar13.Position := 0;
  253. ScrollBar14.Position := 4;
  254. ScrollBar15.Position := 0;
  255. ScrollBar16.Position := -2;
  256. UpdateSignal := true;
  257. Scrollbar8Change (Sender);
  258. end;
  259.  
  260.  
  261. end.
  262.