1. feladat: Koordináta rendszer kirajzolása 1db TImage, 1db TGroupBox TImage: Name: ImageRajz Align: alclient TGroupBox: Name: GroupBoxManip Caption: - Align: albottom var ks, ko: integer; procedure Inicializal; with Form1.ImageRajz do ko:=width div 2; ks:=height div 2; Picture.Bitmap.Width:=Width; Picture.Bitmap.Height:=Height; Picture.Bitmap.Clear; //origó x koord. //origó y koord. //tiszta lap Picture.Bitmap.Canvas.Pen.Color:=clWhite; //fehér Picture.Bitmap.Canvas.Line(0,ks,Width-1,ks); //x tengely Picture.Bitmap.Canvas.Line(ko,0,ko,Height-1); //y tengely Form1: onresize procedure TForm1.FormResize(Sender: TObject); Inicializal;
2. feladat: Pontrajzolás 1db TLabel, 2db TLabeldEdit, 1db Button TLabel: Name: LabelP Caption: P pont LabeledEdit: Name: LabeledEditx/ LabeledEdity EditLabel: Caption: x/ y LabelPosition: lpleft Button: Name: ButtonPontRajzol Caption: Pont procedure PontRajzol(const x,y: real); var s,o: integer; s:=round(ks-y); o:=round(ko+x); if ((0<=s) and (s<=form1.imagerajz.height-1) and (0<=o) and (o<=form1.imagerajz.width-1))then Form1.ImageRajz.Picture.Bitmap.Canvas.Pixels[o, s] := clwhite; ButtonPontRajzol: onclick procedure TForm1.ButtonPontRajzolClick(Sender: TObject); var x,y: real; x:=strtofloat(labelededitx.text); y:=strtofloat(labelededity.text);
3. feladat: Szakaszrajzolás 1db TLabel, 2db TLabeldEdit, 2db Button TLabel: Name: LabelQ Caption: Q pont LabeledEdit: Name: LabeledEditx2/ LabeledEdity2 EditLabel: Caption: x/ y LabelPosition: lpleft Button: Name: ButtonSzakaszRajzol1/ ButtonSzakaszRajzol2 Caption: Szakasz I. /Szakasz II. procedure SzakaszRajzol1(const x1,y1,x2,y2: integer); var it,y: real; x: integer; it := (y2-y1)/(x2-x1); for x:=x1 to x2 do y:=(x-x1)*it+y1;
procedure SzakaszRajzol2(const x1,y1,x2,y2: integer); var lx,ly,x,y:real; hx,hy,h,k: integer; hx:=x2-x1; hy:=y2-y1; if abs(hx)>abs(hy) then h:=abs(hx) else h:=abs(hy); if h = 0 then PontRajzol(x1,y1) else lx:=hx/h; ly:=hy/h; x:=x1; y:=y1; PontRajzol(x1,y1); for k:=1 to h do x:=x+lx; y:=y+ly; ButtonSzakaszRajzol1: onclick procedure TForm1.ButtonSzakaszRajzol1Click(Sender: TObject); var x1,y1,x2,y2: integer; x1:=strtoint(labelededitx.text); y1:=strtoint(labelededity.text); x2:=strtoint(labelededitx2.text); y2:=strtoint(labelededity2.text); SzakaszRajzol1(x1,y1,x2,y2); ButtonSzakaszRajzol2: onclick procedure TForm1.ButtonSzakaszRajzol2Click(Sender: TObject); var x1,y1,x2,y2: integer; x1:=strtoint(labelededitx.text); y1:=strtoint(labelededity.text); x2:=strtoint(labelededitx2.text); y2:=strtoint(labelededity2.text); SzakaszRajzol2(x1,y1,x2,y2);
4. feladat: Körrajzolás 1db Common Controls: TTrackBar, 1db TButton Button: TTrackBar: Name: ButtonKor Caption: Kör Name: TrackBarSugar Max: 200 Position: 100 procedure Kovetkezo(var x,y: integer; const r: integer); if (x+1)*(x+1)+y*y<=r*r then x:=x+1 else if (x+1)*(x+1)+(y-1)*(y-1)<=r*r then x:=x+1; y:=y-1; end else y:=y-1; procedure KorRajzol(const r:integer); var x,y: integer; x:=0; y:=r; while y>=0 do PontRajzol(-x,y); PontRajzol(x,-y); PontRajzol(-x,-y); Kovetkezo(x,y,r);
ButtonKor: onclick procedure TForm1.ButtonKorClick(Sender: TObject); KorRajzol(TrackBarSugar.Position) TrackBarSugar: onchange procedure TForm1.TrackBarSugarChange(Sender: TObject); Inicializal; KorRajzol(TrackBarSugar.Position);
5. feladat: Mentés, kilépés 1db TSavePictureDialog, 2db TButton SavePictureDialog: Name: SavePictureDialog Button: Name: ButtonMent/ButtonKilep Caption: Mentés/Kilépés ButtonMent: onclick procedure TForm1.ButtonMentClick(Sender: TObject); if SavePictureDialog.Execute then ImageRajz.Picture.SaveToFile(SavePictureDialog.FileName); ButtonKilep: onclick procedure TForm1.ButtonKilepClick(Sender: TObject); Close;