Blame | Last modification | View Log | Download
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, OleCtrls, VCFI, Menus;typeTForm1 = class(TForm)vykreslit: TButton;Button2: TButton;reset: TButton;vypis: TButton;Obrazovka: TPaintBox;Posuv: TScrollBar;ScrollBar2: TScrollBar;ScrollBar3: TScrollBar;zoom: TScrollBar;StaticText1: TStaticText;procedure vykreslitClick(Sender: TObject);procedure obrazovkaShow(Sender: TObject);procedure Button2Click(Sender: TObject);procedure resetClick(Sender: TObject);procedure vypisClick(Sender: TObject);procedure ScrollBar2Change(Sender: TObject);procedure ScrollBar3Change(Sender: TObject);procedure zoomChange(Sender: TObject);procedure PosuvChange(Sender: TObject);procedure Button1Click(Sender: TObject);private{ Private declarations }publicprocedure smazat;{ Public declarations }end;constMAX=455;pametMAX=6*MAX;varForm1: TForm1;PobrazovkaYMIN: array [0..MAX] of word;PobrazovkaYMAX: array [0..MAX] of word;pamet: array[0..pametMAX{,0..pametMAX}]of word;implementationuses Unit2;{$R *.dfm}procedure Tform1.smazat;beginForm1.Canvas.Pen.Mode:=pmNot;Form1.Obrazovka.Canvas.Brush.Color:=clblack;Form1.Obrazovka.Canvas.Rectangle(0,0,455,256);Form1.Obrazovka.Canvas.Pen.Color:=cllime;end;procedure Draw;varx: word;beginForm1.Obrazovka.Canvas.MoveTo(0,PobrazovkaYMAX[0]);for x:=1 to MAX dobeginForm1.Obrazovka.Canvas.LineTo(x,PobrazovkaYMAX[x]);Form1.Obrazovka.Canvas.LineTo(x,PobrazovkaYMIN[x]);endend;procedure TForm1.vykreslitClick(Sender: TObject);(* ble:extended;*)var i,x: integer;beginsmazat;for x:=0 to pametMAX dobeginpamet[x]:=random(200); //round((sin(x/1)*100)+100);end;PosuvChange(Self);end;procedure TForm1.obrazovkaShow(Sender: TObject);beginsmazat;end;procedure TForm1.Button2Click(Sender: TObject);var n: integer;beginn:=0;while n<256 dobeginObrazovka.Canvas.Pen.Color:=clYellow;Obrazovka.Canvas.MoveTo(0,n);Obrazovka.Canvas.LineTo(455,n);n:=n+70;end;n:=0;while n<455 dobeginObrazovka.Canvas.Pen.Color:=clSilver;Obrazovka.Canvas.MoveTo(n,0);Obrazovka.Canvas.LineTo(n,455);n:=n+70;end;Obrazovka.Canvas.Pen.Color:=cllimeend;procedure TForm1.resetClick(Sender: TObject);var j:word;beginsmazat;for j:=0 to MAX doPobrazovkaYMIN[j]:=0;PobrazovkaYMAX[j]:=0;for j:=0 to pametMAX dopamet[j]:=0;end;procedure TForm1.vypisClick(Sender: TObject);var faut:TextFile;x:word;ble: string;beginForm2.ShowModal;if Form2.Edit1.Text<>'' thenbeginAssignFile(faut,Form2.Edit1.Text);Rewrite(faut);for x:=0 to 455 dobeginstr(x,ble);Write(faut,'x='+ble+',');str(PobrazovkaYMIN[x],ble);Write(faut,'Ymin='+ble+',');str(PobrazovkaYMAX[x],ble);Writeln(faut,'Ymax='+ble+'; ');end;CloseFile(faut);endend;procedure TForm1.ScrollBar2Change(Sender: TObject);varxold:word;zoom: integer;code: integer;beginxold:=ScrollBar2.Position;Obrazovka.Canvas.Pen.Color:=clred;Obrazovka.Canvas.Pen.Mode:=pmNotXor;Form1.Obrazovka.Canvas.MoveTo(xold,Obrazovka.Height);Form1.Obrazovka.Canvas.LineTo(xold,0);Obrazovka.Canvas.Pen.Mode:=pmNot;end;procedure TForm1.ScrollBar3Change(Sender: TObject);varx,y:word;beginobrazovka.Canvas.Pen.Color:=clred;obrazovka.Canvas.Pen.Mode:=pmNotXor;Form1.obrazovka.Canvas.MoveTo(0,ScrollBar3.Position);Form1.obrazovka.Canvas.LineTo(obrazovka.Width,ScrollBar3.Position);obrazovka.Canvas.Pen.Mode:=pmNop;end;procedure TForm1.zoomChange(Sender: TObject);varzoom, Xpamet, Xobraz, i, Ymax, Ymin : word;beginzoom:=Form1.zoom.Position;Xpamet:=Posuv.Position;Xobraz:=0;while Xpamet < pametMAX dobeginYmax:=pamet[Xpamet];Ymin:=pamet[Xpamet];for i:=Xpamet to Xpamet+(zoom-1) dobeginif pamet[Xpamet]<Ymin then Ymin:=pamet[Xpamet]else if pamet[Xpamet]>Ymax then Ymax:=pamet[Xpamet]end;end;smazat;Draw;end;procedure TForm1.PosuvChange(Sender: TObject);beginPosuv.Max:=pametMAX-MAX;zoomChange(Self);end;procedure TForm1.Button1Click(Sender: TObject);beginsmazat;end;end.