ministerul educaţiei al republicii moldova

62
MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA UNIVERSITATEA PEDAGOGICĂ DE STAT ,,ION CREANGĂ “ DIN CHIŞINĂU Facultatea Informatică şi TII Specialitatea matematică şi informatică LUCRARE DE LABORATOR №1 TEMA: Primitivele Grafice. Metode şi Proprietăţi a bibliotecii TCanvas. Efectuat:Turculeţ Axenia

Upload: axenia-turculet

Post on 09-Apr-2016

34 views

Category:

Documents


5 download

DESCRIPTION

Ministerul Educaţiei Al Republicii Moldova

TRANSCRIPT

Page 1: Ministerul Educaţiei Al Republicii Moldova

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVAUNIVERSITATEA PEDAGOGICĂ DE STAT ,,ION CREANGĂ “ DIN CHIŞINĂU

Facultatea Informatică şi TII

Specialitatea matematică şi informatică

LUCRARE DE LABORATOR №1

TEMA: Primitivele Grafice. Metode şi Proprietăţi a

bibliotecii TCanvas.

Efectuat:Turculeţ Axenia

Verificat: Grosu Olga

Chişinău,2012

Page 2: Ministerul Educaţiei Al Republicii Moldova

Scopul lucrarii: Lucrul cu biblioteca canvas.

Problema1: Utilizarea metodelor (arc, rectangrle, roundrect,pie,chord, ellipse, polygon, polyline,textout) şi propietăţilor (pen, brush,font) pentru realizarea unui desen complex.

Date teoretice:(aceste date teoretice se referă la întreaga lucrare de laborator)

Orice canvas are un Pen (peniţă) care are o anumită culoare, o grosime şi un anumit stil de trasare a liniei, are un Brush (pensulă) care are un anumit tipar

de desenare, are un Font cu care se scriu texte pe canvas, şi are o serie largă de metode de trasare şi de scriere:

procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

Această metodă desenează un arc de elipsă. Coordonatele elipsei sunt

determinate de dreptunghiul în care ea este înscrisă (X1,Y1) - (Х2, Y2) ;

procedure Draw(X, Y: Integer; Graphic: TGraphic);

Imaginea este redată într-un dreptunghi determinată de mărimea grafică, cu colțul din stânga sus la punctul (X, Y). 

procedure Ellipse(X1, Y1, X2, Y2: Integer);

Aceasta desenează o elipsă înscrisă într-un dreptunghi (Х1, Y1) - (Х2, Y2);

procedure FillRect(const Rect: TRect);

Umple o regiune dreptunghiu lară cu ajutorul periei curente. Regiunea estecompletată, inclusiv partea de sus și din stânga ale dreptunghiului, dar excluzând marginile de jos și din dreapta. 

procedure LineTo(X, Y: Integer);

Metoda desenează linia dusă din punctul unde se găseşte la momentul dat

creionul în punctul (X, Y).

procedure MoveTo(X, Y: Integer);

Această metodă presupune schimbarea poziţiei creionului în punctul (X,Y).

procedure Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);

2

Page 3: Ministerul Educaţiei Al Republicii Moldova

Această metodă deseneză un sector de elipsă înscrisă în dreptunghi (Х1, Y1) -

(Х2, Y2). Marginile sectorul sunt determinate de razele duse din central

elipsei în punctele (ХЗ, Y3) şi (Х4, Y4).

procedure Chord (XI, Yl, X2,Y2, ХЗ, Y3, Х4, Y4:Integer) ;

Primele patru coornonate determină dreptunghiul în care se înscrie o elipsă,

celelalte două punctul initial şi final al coardei determinat ca şi în cazul

arcului.

procedure Polygon(const Points: array of TPoint);

Construieşte un polygon luînd în consideraţie masivul coordonatelor punctelor

Points, astfel ca ultimul punct se uneşte cu primul şi suprafaţa figurii se

colorează.

procedure Polyline(const Points: array of TPoint);

Construieşte o linie frîntă după coordonatele Points.

procedure Rectangle(X1, Y1, X2, Y2: Integer);

Desenează un dreptunghi cu coordonatele (Х1, Y1) – stînga sus, şi dreapta jos

(Х2, Y2).

procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer);

RoundRect  desenează un dreptunghi rotunjit . Dreptunghiul va avea margini definite de punctele (X1, Y1), (X2, Y1), (X2, Y2), (X1, Y2), dar colțurile va fi ras pentru a crea un aspect rotunjit. Curba de colturi rotunjite coincide cu curbură a unei elipse cu lățime și înălțimea X3 Y3.

function TextExtent(const Text: string): TSize;

- determina spaţiul ocupat de textul din imagi.

procedure TextOut(X, Y: Integer; const Text: string);

- Scrie un șir de caractere pe panza, începând de la punctul (X, Y), și apoi actualizează PenPos la sfârșitul șir.

procedure TextRect(Rect: TRect; X, Y: Integer; const Text: string);

3

Page 4: Ministerul Educaţiei Al Republicii Moldova

- se utilizează pentru a scrie numai textul care se potrivește într-un dreptunghi de tăiere.

Proprietățile se caracterizează astfel:

TCanvas - De exemplu, când se execută o secvenţă de tipul Move To sau Line To, se desenează o linie având culoarea curentă selectată. Proprietatea Paint este folosită pentru a determina culoarea curentă şi este o parte din clasa TPen. Această clasă are proprietăţi ce determină tipul de linie: lăţimea, stilul (continu, punctat, linie întreruptă etc).

Tbrush reprezintă o pensulă folosită pentru umplerea modelului de pe “pânză”, prin operaţii ca FillRect (umplere dreptunghiulară), Polygon (umplere poligonală), Ellipse (umplere în formă de elipsă). Proprietăţile TBrush includ Color, Style şi Bitmap. Proprietatea Style oferă posibilitatea alegerii unui model pentru pensulă (brush). Proprietatea Bitmap dă posibilitatea să se aleagă imaginea dorită pentru a umple modelul.

TFont se ocupă de operaţii cu fonturi. Proprietăţile includ: Color, Height (înălţime), Style (bold, italic, normal şi so on ). Proprietãþile Height și Width (de tip integer).Sabilesc înãlţimea, respectiv lãţmea formei sau componentei. Aceste valori sunt exprimate în puncte care include și dimensiunile rezervate chenarelor.

Prin bitmap înţelegem o matrice de pixeli, fiecare pixel fiind în esenţă un număr întreg care codifică, sub un anumit format, o culoare. Atunci când un bitmap este tras (draw) pe ecran, fiecărui pixel îi corespunde un punct colorat pe monitor. Pentru manipularea bitmapurilor Delphi pune la dispoziţie clasa TBitmap, un obiect din această clasă având, pe lângă bitmapul propriuzis, multe alte câmpuri şi metode utile. Mai mult, fiecare obiect TBitmap are propriul canvas, prin intermediul căruia îi putem seta pixelii.

Proprietatea Enabled (de tip boolean)--Se referã la accesibilitatea formei sau componentei.

Metoda Refresh, Repaint--Redeseneazã forma.

4

Page 5: Ministerul Educaţiei Al Republicii Moldova

Forma înainte de execuție:

Fig.1.1.imaginea formei înainte de execuţie

Aici la formă au fost schimbate proprietăţile Tfond,Caption,Tcolor;la fel și la butoane au fost schimbate aceste proprietăţi,pentru o imagine mai evidenţiată.

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

begin

pb1.Canvas.Pen.Width:=1; //grosimea liniei cu care va desena creionul

pb1.Canvas.Pen.Style:=psSolid; //stilul de desenare a liniei

pb1.Canvas.Pen.Color:=clFuchsia; //culoarea creionului

5

Page 6: Ministerul Educaţiei Al Republicii Moldova

pb1.Canvas.Brush.Color:=clWhite; // culoarea pensulei,pentru umplerea pinzei

//aici incepem programarea pentru a desena cadranele in care vor aparea arcurile

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.Arc(355,225,205,75,355,150,280,75); //arcul va aparea in cadranul 1

end;

procedure TForm1.btn2Click(Sender: TObject);

begin

pb1.Canvas.Pen.Width:=1;

pb1.Canvas.Pen.Style:=psDash;

pb1.Canvas.Arc(355,225,205,75,280,75,205,150);//pentru cadranul 2

end;

procedure TForm1.btn3Click(Sender: TObject);

begin

pb1.Canvas.Pen.Width:=1;

pb1.Canvas.Pen.Style:=psDashDot;

pb1.Canvas.Arc(355,225,205,75,205,150,280,225); //pentru cadranul 3

6

Page 7: Ministerul Educaţiei Al Republicii Moldova

end;

procedure TForm1.btn4Click(Sender: TObject);

begin

pb1.Canvas.Pen.Width:=1;

pb1.Canvas.Pen.Style:=psDot;

pb1.Canvas.Arc(355,225,205,75,280,225,355,150); //pentru cadranul 4

end;

procedure TForm1.btn7Click(Sender: TObject);

begin

pb1.Refresh; //refresh-redeseneaza forma

end;

procedure TForm1.btn5Click(Sender: TObject);

begin

pb1.Canvas.Pen.Width:=1;

pb1.Canvas.Pen.Style:=psSolid;

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

7

Page 8: Ministerul Educaţiei Al Republicii Moldova

pb1.Canvas.Pen.Width:=3;

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256)); //rgb-

//alteratia culorilor rosu verde si albastru

pb1.Canvas.Arc(355,225,205,75,335,75,205,225); //construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in 3

end;

procedure TForm1.btn6Click(Sender: TObject);

begin

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,205,75,355,225);//construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in 4

end;

procedure TForm1.btn8Click(Sender: TObject);

begin

8

Page 9: Ministerul Educaţiei Al Republicii Moldova

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,355,75,205,75);//construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 2

end;

procedure TForm1.btn9Click(Sender: TObject);

begin

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,205,75,205,225); //construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in mij.cadr. 3

9

Page 10: Ministerul Educaţiei Al Republicii Moldova

end;

procedure TForm1.btn10Click(Sender: TObject);

begin

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,205,225,355,225); //construieste arcul ce porneste

//din mijlocul caranului 3 si se termina in mij.cadr. 4

end;

procedure TForm1.btn11Click(Sender: TObject);

begin

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

10

Page 11: Ministerul Educaţiei Al Republicii Moldova

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,355,225,355,75);//construieste arcul ce porneste

//din mijlocul caranului 4 si se termina in mij.cadr. 1

end;

procedure TForm1.btn12Click(Sender: TObject);

begin

pb1.Canvas.Brush.Color:=clWhite;

pb1.Canvas.Rectangle(355,225,205,75);

pb1.Canvas.MoveTo(280,225);

pb1.Canvas.LineTo(280,75);

pb1.Canvas.MoveTo(355,150);

pb1.Canvas.LineTo(205,150);

pb1.Canvas.pen.Color:=rgb(random(256),random(256),random(256));

pb1.Canvas.Arc(355,225,205,75,355,75,355,225); //construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 4

end;

procedure TForm1.btn13Click(Sender: TObject);

begin

11

Page 12: Ministerul Educaţiei Al Republicii Moldova

//in paintbox2 incepem programarea pentru chord -coarda

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Pen.Width:=4;

pb2.Canvas.Pen.Color:=clYellow;

pb2.Canvas.Brush.Color:=clAqua;

pb2.Canvas.Chord(355,225,205,75,355,150,280,75); //pentru cadr. 1

end;

procedure TForm1.btn14Click(Sender: TObject);

begin

pb2.Canvas.Pen.Width:=4;

pb2.Canvas.Pen.Color:=clYellow;

pb2.Canvas.Brush.Color:=clblue;

pb2.Canvas.chord(355,225,205,75,280,75,205,150);//cadr.2

end;

procedure TForm1.btn15Click(Sender: TObject);

begin

12

Page 13: Ministerul Educaţiei Al Republicii Moldova

pb2.Canvas.Brush.Color:=clcream;

pb2.Canvas.chord(355,225,205,75,205,150,280,225);//cadr.3

end;

procedure TForm1.btn16Click(Sender: TObject);

begin

pb2.Canvas.Brush.Color:=clgray;

pb2.Canvas.Chord(355,225,205,75,280,225,355,150); //cadr.4

end;

procedure TForm1.btn17Click(Sender: TObject);

begin

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Brush.Color:=clgreen;

pb2.Canvas.Chord(355,225,205,75,335,75,205,225); ////construieste arcul ce porneste

13

Page 14: Ministerul Educaţiei Al Republicii Moldova

//din mijlocul caranului 1 si se termina in mij.cadr. 3

end;

procedure TForm1.btn18Click(Sender: TObject);

begin

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Brush.Color:=clPurple;

pb2.Canvas.Chord(355,225,205,75,205,75,355,225); //construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in mij.cadr. 4

end;

procedure TForm1.btn19Click(Sender: TObject);

begin

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

14

Page 15: Ministerul Educaţiei Al Republicii Moldova

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Brush.Color:=clMaroon;

pb2.Canvas.Chord(355,225,205,75,355,75,205,75); //construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 2

end;

procedure TForm1.btn20Click(Sender: TObject);

begin

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Brush.Color:=clred;

pb2.Canvas.Chord(355,225,205,75,205,75,205,225); //construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in mij.cadr. 3

end;

procedure TForm1.btn21Click(Sender: TObject);

15

Page 16: Ministerul Educaţiei Al Republicii Moldova

begin

pb2.Canvas.Brush.Color:=clWhite;

pb2.Canvas.Rectangle(355,225,205,75);

pb2.Canvas.MoveTo(280,225);

pb2.Canvas.LineTo(280,75);

pb2.Canvas.MoveTo(355,150);

pb2.Canvas.LineTo(205,150);

pb2.Canvas.Brush.Color:=clwhite;

pb2.Canvas.Chord(355,225,205,75,355,75,355,225);//construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 4

end;

procedure TForm1.btn22Click(Sender: TObject);

begin

pb2.Refresh;

end;

procedure TForm1.btn33Click(Sender: TObject);

begin

pb3.Refresh;

end;

16

Page 17: Ministerul Educaţiei Al Republicii Moldova

procedure TForm1.btn23Click(Sender: TObject);

begin //programarea pentru pie-felia de tort

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.color:=clRed;

pb3.Canvas.Brush.Color:=clGreen;

pb3.Canvas.Brush.Style:=bscross;

pb3.Canvas.Pie(355,225,205,75,355,150,280,75); //cadr.1

end;

procedure TForm1.btn24Click(Sender: TObject);

begin

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Brush.Color:=clMaroon;

pb3.Canvas.Brush.Style:=bsDiagCross;

pb3.Canvas.Pie(355,225,205,75,280,75,205,150);//cadr.2

end;

17

Page 18: Ministerul Educaţiei Al Republicii Moldova

procedure TForm1.btn25Click(Sender: TObject);

begin

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Brush.Color:=clCream;

pb3.Canvas.Brush.Style:=bsBDiagonal;

pb3.Canvas.Pie(355,225,205,75,205,150,280,225); //cadr.3

end;

procedure TForm1.btn26Click(Sender: TObject);

begin

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Brush.Color:=clAqua;

pb3.Canvas.Brush.Style:=bsFDiagonal;

pb3.Canvas.Pie(355,225,205,75,280,225,355,150); //cadr.4

end;

procedure TForm1.btn27Click(Sender: TObject);

begin

pb3.Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

18

Page 19: Ministerul Educaţiei Al Republicii Moldova

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.Color:=clred;

pb3.Canvas.Brush.Color:=clblack;

pb3.Canvas.Brush.Style:=bsHorizontal;

pb3.Canvas.Pie(355,225,205,75,205,75,205,225); //construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in mij.cadr. 3

end;

procedure TForm1.btn28Click(Sender: TObject);

begin

pb3.Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Brush.Color:=clGreen;

pb3.Canvas.Brush.Style:=bscross;

19

Page 20: Ministerul Educaţiei Al Republicii Moldova

pb3.Canvas.Pie(355,225,205,75,205,75,355,225); //construieste arcul ce porneste

//din mijlocul caranului 2 si se termina in mij.cadr. 4

end;

procedure TForm1.btn29Click(Sender: TObject);

begin

pb3. Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.Color:=clred;

pb3.Canvas.Brush.Color:=clyellow;

pb3.Canvas.Brush.Style:=bsVertical;

pb3.Canvas.Pie(355,225,205,75,355,75,205,75); //construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 2

end;

procedure TForm1.btn30Click(Sender: TObject);

20

Page 21: Ministerul Educaţiei Al Republicii Moldova

begin

pb3. Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.Color:=clred;

pb3.Canvas.Brush.Color:=clblue;

pb3.Canvas.Brush.Style:=bsSolid;

pb3.Canvas.Pie(355,225,205,75,205,225,355,225); //construieste arcul ce porneste

//din mijlocul caranului 3 si se termina in mij.cadr. 4

end;

procedure TForm1.btn31Click(Sender: TObject);

begin

pb3.Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

21

Page 22: Ministerul Educaţiei Al Republicii Moldova

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.Color:=clred;

pb3.Canvas.Brush.Color:=clblack;

pb3.Canvas.Brush.Style:=bsclear;

pb3.Canvas.Pie(355,225,205,75,355,75,355,225);

//construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 4

end;

procedure TForm1.btn32Click(Sender: TObject);

begin

pb3.Refresh;

pb3.Canvas.Brush.Color:=clWhite;

pb3.Canvas.Rectangle(355,225,205,75);

pb3.Canvas.MoveTo(280,225);

pb3.Canvas.LineTo(280,75);

pb3.Canvas.MoveTo(355,150);

pb3.Canvas.LineTo(205,150);

pb3.Canvas.Pen.Width:=3;

pb3.Canvas.Pen.Color:=clred;

pb3.Canvas.Brush.Color:=clblack;

pb3.Canvas.Brush.Style:=bsHorizontal;

22

Page 23: Ministerul Educaţiei Al Republicii Moldova

pb3.Canvas.Pie(355,225,205,75,335,75,205,225); //construieste arcul ce porneste

//din mijlocul caranului 1 si se termina in mij.cadr. 3

end;

procedure TForm1.btn34Click(Sender: TObject);

//Plygon - procedure Polygon (const Points: array of TPoint)

// Construieste un polygon luind in consideratie masivul coordonatelor punctelor

// Points, astfel ca ultimul punct se uneste cu primul si suprafata figurii se coloreaza.

const p:array [1..7] of Tpoint=((x:50;y:50),(x:65;y:50),(x:115;y:250),(x:100;y:250),

(x:60;y:90),(x:25;y:250),(x:10;y:250));

const s:array [1..4] of tpoint=((x:20;y:135),(x:110;y:135),(x:110;y:150),(x:20;y:150));

const x:array [1..12] of TPoint=((x:120;y:50),(x:135;y:50),(x:175;y:135),(x:225;y:50),

(x:240;y:50),(x:181;y:150),(x:240;y:250),(x:225;y:250),(x:175;y:165),(x:135;y:250),

(x:120;y:250),(x:169;y:150));

const e:array [1..12] of TPoint=((x:245;y:50),(x:345;y:50),(x:345;y:65),(x:265;y:65),

(x:265;y:135),(x:345;y:135),(x:345;y:155),(x:265;y:155),(x:265;y:235),(x:345;y:235),

(x:345;y:250),(x:245;y:250));

23

Page 24: Ministerul Educaţiei Al Republicii Moldova

const n:array [1..10] of TPoint=((x:350;y:50),(x:370;y:50),(x:450;y:230),(x:450;y:50),

(x:465;y:50),(x:465;y:250),(x:445;y:250),(x:365;y:65),(x:365;y:250),(x:350;y:250));

const i:array [1..12] of TPoint=((x:470;y:50),(x:500;y:50),(x:500;y:65),(x:495;y:65),(x:495;y:235),

(x:500;y:235),(x:500;y:250),(x:470;y:250),(x:470;y:235),(x:475;y:235),(x:475;y:65),(x:470;y:65));

const a:array [1..7] of TPoint=((x:550;y:50),(x:565;y:50),(x:615;y:250),(x:600;y:250),

(x:560;y:100),(x:520;y:250),(x:505;y:250));

const aa:array [1..4] of TPoint=((x:520;y:135),(x:600;y:135),(x:600;y:150),(x:520;y:150));

begin

pb4.canvas.brush.color:=clblue;

pb4.canvas.polygon(p);

pb4.canvas.brush.color:=clblue;

pb4.canvas.polygon(s);

pb4.Canvas.Brush.Color:=clMaroon;

pb4.Canvas.Polygon(x);

pb4.Canvas.Brush.Color:=clRed;

pb4.Canvas.Polygon(e);

pb4.Canvas.Brush.Color:=clgray;

pb4.Canvas.Polygon(n);

pb4.Canvas.brush.color:=clYellow;

pb4.Canvas.Polygon(i);

24

Page 25: Ministerul Educaţiei Al Republicii Moldova

pb4.Canvas.Brush.Color:=clgreen;

pb4.Canvas.Polygon(a);

pb4.Canvas.Polygon(aa);

end;

procedure TForm1.pb5Click(Sender: TObject);

//Polyline - procedure Polyline (constPoints: array of TPoint);

// Metoda construieste o linie frinta dupa coordonatele Points.

const t:array[1..4] of tpoint= ((x:10;y:50),(x:90;y:50),(x:50;y:50),(x:50;y:250));

const u:array[1..4] of tpoint= ((x:95;y:50),(x:95;y:250),(x:170;y:250),(x:170;y:50));

const r:array[1..6] of tpoint= ((x:175;y:250),(x:175;y:50),(x:265;y:50),(x:265;y:120),

(x:175;y:120),(x:265;y:250));

const c:array[1..4] of tpoint= ((x:360;y:50),(x:270;y:50),(x:270;y:250),(x:360;y:250));

const uu:array[1..4] of tpoint= ((x:365;y:50),(x:365;y:250),(x:455;y:250),(x:455;y:50));

const l:array[1..3] of tpoint= ((x:460;y:50),(x:460;y:250),(x:550;y:250));

const ee:array[1..7] of tpoint= ((x:645;y:50),(x:555;y:50),(x:555;y:150),(x:645;y:150),(x:555;y:150),(x:555;y:250),(x:645;y:250));

const et:array[1..4] of tpoint= ((x:650;y:50),(x:740;y:50),(x:695;y:50),(x:695;y:250));

25

Page 26: Ministerul Educaţiei Al Republicii Moldova

const ett:array[1..2] of TPoint=((x:695;y:255),(x:695;y:270));

begin

pb5.Canvas.pen.Color:=clGreen;

pb5.Canvas.Pen.Width:=3;

pb5.Canvas.Polyline(t);

pb5.Canvas.Polyline(u);

pb5.Canvas.Polyline(r);

pb5.Canvas.Polyline(c);

pb5.Canvas.Polyline(uu);

pb5.Canvas.Polyline(l);

pb5.Canvas.Polyline(ee);

pb5.Canvas.Polyline(et);

pb5.Canvas.Polyline(ett)

end;

procedure TForm1.btn36Click(Sender: TObject);

begin

tmr1.Enabled:=True;

end;

procedure TForm1.tmr1Timer(Sender: TObject);

var i,j:Integer;b:tBITMAP;

begin

for i:=0 to form1.width do

26

Page 27: Ministerul Educaţiei Al Republicii Moldova

for j:=0 to form1.height do

begin

pb6.Canvas.Pixels[i,j]:=RGB(Random(255),Random(255),Random(255));

end;

begin

pb6.Canvas.Rectangle(190,200,870,380);

pb6.Canvas.Font.Size:=70;

pb6.Canvas.Font.Color:=clred;

pb6.Canvas.TextOut(200,210,'Creanga inimii ');

end;

begin

for i:=0 to form1.width do

for j:=0 to form1.height do

begin

pb6.Canvas.Pixels[i,j]:=RGB(Random(255),Random(255),Random(255));

end;

begin

pb6.Canvas.Pen.Width:=4;

pb6.Canvas.Brush.Color:=clGreen;

pb6.Canvas.Font.Size:=8;

pb6.Canvas.Font.Color:=clblack;

27

Page 28: Ministerul Educaţiei Al Republicii Moldova

pb6.Canvas.Rectangle(100,100,320,320);

pb6.Canvas.pen.Width:=4;

pb6.Canvas.textout(110,150,'Si nici macar o clipa eu nu ma mir ca pot,');

pb6.canvas.TextOut(110,180,'Sa tin pe creanga asta si universul tot...');

pb6.Canvas.TextOut(110,220,'Il port pe creaga asta întinsa usurel,');

pb6.Canvas.TextOut(110,250,'Cum port lumina lumii în piatra de inel,');

pb6.Canvas.Brush.Color:=clFuchsia;

pb6.Canvas.Ellipse(50,300,250,500);

pb6.Canvas.Brush.Color:=clred;

pb6.Canvas.RoundRect(350,100,650,330,100,150); //Metoda deseneaza un dreptunghi cu colturile rotungite,

pb6.Canvas.pen.Width:=4;

pb6.Canvas.textout(390,150,'Cind alte universuri ma cheama sau le chem,');

pb6.Canvas.TextOut(390,180,'De-o nostalgie crunta adinc oftez si gem,');

pb6.Canvas.TextOut(390,220,'Caci stiu atit de bine ca din acelasi lut');

pb6.Canvas.TextOut(390,260,'Si trupul meu si Calea Lactee s-au facut,');

pb6.canvas.Brush.Color:=clAqua;

pb6.Canvas.Ellipse(630,20,800,180);

pb6.Canvas.Pen.Width:=4;

pb6.canvas.Brush.Color:=clYellow;

pb6.Canvas.rectangle(620,300,840,520);

pb6.Canvas.pen.Width:=4;

pb6.Canvas.textout(640,350,'Si pare universul imens si uimitor,');

pb6.Canvas.TextOut(640,400,'Adeseori ca bucla iubitei de usor,');

28

Page 29: Ministerul Educaţiei Al Republicii Moldova

pb6.Canvas.TextOut(640,440,'Si-l simt pina la durere si imn, adese, cind');

pb6.Canvas.TextOut(630,470,'Cumplit mi se apasa pe creanga lacramind.');

end;end;

for i:=0 to form1.width do

for j:=0 to form1.height do

begin

pb6.Canvas.Pixels[i,j]:=RGB(Random(255),Random(255),Random(255));

end;

begin

b:=tbitmap.create;

b.LoadFromFile('poet.bmp') ;

pb6.canvas.draw(300,150,b)

end;

for i:=0 to form1.width do

for j:=0 to form1.height do

begin

pb6.Canvas.Pixels[i,j]:=RGB(Random(255),Random(255),Random(255));

end;

begin

pb6.Canvas.Rectangle(190,200,877,300);

pb6.Canvas.Font.Size:=40;

pb6.Canvas.Font.Color:=clred;

pb6.Canvas.TextOut(200,210,'Din Cercul Poetilor Disparuti ');

29

Page 30: Ministerul Educaţiei Al Republicii Moldova

end; end;

procedure TForm1.btn35Click(Sender: TObject);

begin

tmr1.Enabled:=False;

end;

end.

Execuția programului:

De exemplu ,făcănd clik pe PageControl cu denumirea ,,Poligon”și apoi clik pe butonul ,,Afișează”,obtinem asa imagine :

Fig.1.2.forma după execuţie

Iar daca fcem clik pe ,,Poliline” și apoi dublu clik pe PaintBox obtinem:

30

Page 31: Ministerul Educaţiei Al Republicii Moldova

Fig.1.3.forma după execuţie

Și dacă pe ,,arc”,apoi pe butoanele cadran 1,2,3,4 obţinem arcurile:

Fig.1.4.forma după execuţie

31

Page 32: Ministerul Educaţiei Al Republicii Moldova

Problema2: Utilizarea subprogramului procedură pentru repartizarea multiplă a figurii complexe pe suprafaţa componentei Tform: pe orizontală, pe verticală, umplerea întregii componente Tform cu desenul multiplicat.

Forma înainte de execuție:

Fig.2.1.forma înainte de execuţie

Pentru dizainul formei și butoanelor s-a schimbat proprietatea Caption,Font,Color.

implementation

{$R *.dfm}

Procedure steluta(cs:TCanvas;xc,yc,Rx,Ry,h,g,f:integer); //procedura pentru disenarea stelutei

begin

32

Page 33: Ministerul Educaţiei Al Republicii Moldova

cs.brush.color:=rgb(Random(255),Random(255),Random(255));//culoarea de umplere a figurii

cs.Rectangle(xc-Rx,yc-Ry,xc+Rx,yc+Ry);//deseana dreptunghiul ca suport al stelutei

cs.Pen.Color:=clmaroon; //pentru creion

cs.Brush.Color:=clYellow;//pentru steluta culoarea

//incepem desenarea stelutei cu ajutorul procedurelor,MouveTo si LineTo

cs.MoveTo(xc-Rx-h,yc-Ry+h);

cs.LineTo(xc,yc-Ry-h-g);

cs.LineTo(xc+Rx+h,yc-Ry+h);

cs.LineTo(xc+Rx,yc-Ry);

cs.LineTo(xc-Rx+h-g,yc-Ry-h-g+f);

cs.LineTo(xc+Rx-h+g,yc-Ry-h-g+f);

cs.LineTo(xc-Rx-h,yc-Ry+h);

//incepe colorarea stelutei cu ajutorul procedurei FloodFill

cs.FloodFill(xc,yc-Ry-h-g+10,clmaroon,fsborder);

cs.FloodFill(xc,yc-Ry+h-g+10,clmaroon,fsborder);

cs.FloodFill(xc-Rx,yc-Rx+h-g-f+10,clmaroon,fsborder);

cs.FloodFill(xc+Rx,yc-Rx+h-g-f+10,clmaroon,fsborder);

cs.FloodFill(xc-Rx,yc-Rx-h-g+f+10,clmaroon,fsborder);

cs.FloodFill(xc+Rx,yc-Rx-h-g+f+10,clmaroon,fsborder);

cs.Brush.Color:=clYellow;

end;

procedure cercFor(cs:TCanvas;xc,yc,r:integer);//procedura pentru dessenarea a 5 cercuri unul in altul cu raze diferite

33

Page 34: Ministerul Educaţiei Al Republicii Moldova

var i:integer;

begin

for i:=5 downto 1 do begin

cs.brush.Color:=rgb(random(256),random(256),random(256));

cs.Ellipse(xc-i*r,yc-i*r,xc+i*r,yc+i*r);

end; end;

procedure TForm1.btn1Click(Sender: TObject);

begin

steluta(form1.Canvas,50,150,10,30,10,50,20);//coordonatele pentru steluta

end;

procedure TForm1.btn2Click(Sender: TObject);

var i,xc:integer;

begin

refresh;

xc:=50;

for i:=1 to 10 do

steluta(Form1.Canvas,xc*2*i,150,10,30,10,50,20);

//aparitia stelutei pe orizontala

end;

procedure TForm1.btn3Click(Sender: TObject);

var j,yc:integer;

34

Page 35: Ministerul Educaţiei Al Republicii Moldova

begin

refresh;

yc:=150;

for j:=1 to 4 do

steluta(Form1.Canvas,50,yc*j,10,30,10,50,20);

//aparitia pe verticala

end;

procedure TForm1.btn4Click(Sender: TObject);

var i,j,xc,yc:Integer;

begin

refresh;

xc:=60; yc:=150;

for i:=1 to 8 do begin

for j:=1 to 4 do

steluta(Form1.Canvas,xc*i*2,yc*j,10,30,10,50,20) ;

//aparitia stelutei pe toata forma

end; end;

procedure TForm1.btn5Click(Sender: TObject);

var i,j,xc,yc:Integer;

begin

Refresh;

xc:=60; yc:=150;

35

Page 36: Ministerul Educaţiei Al Republicii Moldova

for i:=2 to 5 do

for j:=1 to i-1 do

steluta(Form1.Canvas,xc*i*2,yc*j,10,30,10,50,20) ;

//aparitia pe diagonala principala

end;

procedure TForm1.btn6Click(Sender: TObject);

var i,j,xc,yc:Integer;

begin

Refresh;

xc:=60; yc:=150;

for i:=1 to 9 do

for j:=1 to 5-i do

steluta(Form1.Canvas,xc*i*2,yc*j,10,30,10,50,20) ;

//aparitia pe secundara

end;

procedure TForm1.btn7Click(Sender: TObject);

begin

Refresh;

cercFor(form1.Canvas,50,50,10) ;//coordonatele pentru cerc

end;

procedure TForm1.btn8Click(Sender: TObject);

36

Page 37: Ministerul Educaţiei Al Republicii Moldova

var i,xc:integer;

begin

refresh;

xc:=50;

for i:=1 to 10 do

cercFor(form1.Canvas,xc*i*2,90,10) ;

//aparitia cercului pe orizontala

end;

procedure TForm1.btn9Click(Sender: TObject);

var j,yc:integer;

begin

refresh;

yc:=50;

for j:=1 to 6 do

cercFor(form1.Canvas,50,yc*j*2,10) ;

//aparitia pe verticala

end;

procedure TForm1.btn10Click(Sender: TObject);

var i,j,xc,yc:integer;

begin

refresh;

37

Page 38: Ministerul Educaţiei Al Republicii Moldova

xc:=50; yc:=50;

for i:=1 to 10 do begin

for j:=1 to 6 do

cercFor(form1.Canvas,xc*i*2,yc*j*2,10) ; //toata forma

end; end;

procedure TForm1.btn11Click(Sender: TObject);

var i,j,xc,yc:integer;

begin

Refresh;

xc:=50; yc:=50;

for i:=1 to 7 do

for j:=1 to i-1 do

cercFor(form1.Canvas,xc*i*2,yc*j*2,10) ; //diagonala principala

end;

procedure TForm1.btn12Click(Sender: TObject);

var i,j,xc,yc:integer;

begin

Refresh;

xc:=50; yc:=50;

for i:=0 to 20 do

for j:=1 to i-1 do

cercFor(form1.Canvas,xc*i*2-xc*i,yc*j*2-yc*j,10) ;

38

Page 39: Ministerul Educaţiei Al Republicii Moldova

end;

procedure TForm1.btn13Click(Sender: TObject);

var i,j,xc,yc:integer;

begin

Refresh;

xc:=50; yc:=50;

for i:=0 to 10 do

for j:=4 to i-1 do

cercFor(form1.Canvas,xc*i*2-xc*i,yc*j*2-yc*j,10) ;

begin

for i:=12 to 21 do

for j:=4 to 21-i do

cercFor(form1.Canvas,xc*i*2-xc*i,yc*j*2-yc*j,10) ;

//fluturi

end;end;

end.

Execuția programului:

Făcînd clik pe butonul ,,toată-forma” obţinem o formă plina cu steluţa programată anterior:

39

Page 40: Ministerul Educaţiei Al Republicii Moldova

Fig.2.2.forma după execuţie

Alt exemplu avem facînd clik pe butonul,,2”,și ne apare imaginea,,fluture”:

Fig.2.3.forma după execuţie

40

Page 41: Ministerul Educaţiei Al Republicii Moldova

Problema3: Programarea desenului în componenta Ttimer şi mişcarea lui pe suprafaţa formei: pe orizontală, pe verticală, diagonală, pe cerc etc.

Forma înainte de execuție:

Fig.3.1.forma înainte de execuţie

Aici am schimbat la Tform și Tbuton proprietatea Caption,Color,Font.

implementation

{$R *.dfm}

var i,j,e,d:Integer;

procedure TForm1.btn1Click(Sender: TObject);

begin

tmr1.Enabled:=True; //pornirea ceasului

41

Page 42: Ministerul Educaţiei Al Republicii Moldova

Randomize;

end;

procedure TForm1.tmr1Timer(Sender: TObject);

begin //programarea smailicului sa se miste inainte

Form1.Refresh;

if i>300 then begin

tmr1.Enabled:=False;//sa se opreasca ceasul cind ajunge la sfirsit

Form1.Canvas.Ellipse(100+i,100,300+i,300); //fata

Form1.Canvas.Ellipse(150+i,160,170+i,180); //un ochi

Form1.Canvas.Ellipse(230+i,160,250+i,180);//alt ochi

Form1.Canvas.Arc(140+i,160,260+i,260,140+i,260,260+i,260);//gura

end

else

begin

Form1.Canvas.Brush.Color:=clYellow;//culoarea de umplere a fetei

Form1.Canvas.Ellipse(100+i,100,300+i,300);

Form1.Canvas.Brush.color:=clBlack; //culoarea de umplere a ochilor

Form1.Canvas.Ellipse(150+i,160,170+i,180);

Form1.Canvas.Ellipse(230+i,160,250+i,180);

Form1.Canvas.Pen.Width:=3 ;//grosimea cu care deseneaza creionul

Form1.Canvas.Arc(140+i,160,260+i,260,140+i,260,260+i,260);

inc(i);

end; end;

42

Page 43: Ministerul Educaţiei Al Republicii Moldova

procedure TForm1.FormCreate(Sender: TObject);

begin

i:=1;

j:=1;

d:=1;

end;

procedure TForm1.btn2Click(Sender: TObject);

begin

Form1.refresh;

tmr3.Enabled:=False;

tmr1.Enabled:=False;

tmr2.Enabled:=False;

tmr4.Enabled:=False;

tmr5.Enabled:=False;

end;

procedure TForm1.btn3Click(Sender: TObject);

begin

Randomize;

tmr2.Enabled:=True;//pornire ceas 2

end;

43

Page 44: Ministerul Educaţiei Al Republicii Moldova

procedure TForm1.tmr2Timer(Sender: TObject);

begin //miscarea cercului inapoi

Form1.Refresh;

if j>200 then begin

tmr2.Enabled:=False;

Form1.Canvas.Ellipse(500-j,300,700-j,500);

inc(j);

end

else

begin

Form1.Canvas.Ellipse(500-j,300,700-j,500);

inc(j);

Form1.Canvas.Brush.Color:=RGB(Random(255),Random(255),Random(255)) ;//va genera diferite culori

end; end;

procedure TForm1.btn4Click(Sender: TObject);

begin

Randomize;

tmr3.Enabled:=True;//pornire ceas3

end;

procedure TForm1.tmr3Timer(Sender: TObject);

44

Page 45: Ministerul Educaţiei Al Republicii Moldova

begin //umflarea balonului

Form1.Refresh;

if e>400 then begin

tmr3.Enabled:=False;

Form1.Canvas.Ellipse(300-e,300-e,300+e,300+e);

inc(e);

end

else

begin

Form1.Canvas.Ellipse(300-e,300-e,300+e,300+e);

Form1.Canvas.TextOut(300,300,'!');

Form1.Canvas.Brush.Color:=RGB(Random(255),Random(255),Random(255)) ;

inc(e) ;

end;

end;

procedure TForm1.btn5Click(Sender: TObject);

begin

Randomize;

tmr4.Enabled:=True;end;

procedure TForm1.tmr4Timer(Sender: TObject);

var x,y,x1,y1,x2,y2:integer;

begin //rotirea cercului sub un unghi

if j>500 then begin

45

Page 46: Ministerul Educaţiei Al Republicii Moldova

form1.Canvas.Pen.Color:=rgb(Random(255),Random(255),Random(255));

x:=300+round(150*cos(j*pi/180));

y:=300-round(150*sin(j*pi/180));

Form1.Canvas.Ellipse(x-30,y+30,x+30,y-30);

inc(j);

end

else

begin

x:=300+round(150*cos(j*pi/180));

y:=300-round(150*sin(j*pi/180));

Form1.Canvas.Brush.Color:=rgb(Random(255),Random(255),Random(255));

Form1.Canvas.Ellipse(x-30,y+30,x+30,y-30);

inc(j);

end; begin

if j>200 then begin

x1:=500-round(150*sin(j*pi/180));

y1:=500-round(150*cos(j*pi/180));

Form1.Canvas.Ellipse(x1-30,y1+30,x1+30,y1-30);

inc(j);

end

else

begin

x1:=500-round(150*sin(j*pi/180));

y1:=500-round(150*cos(j*pi/180));

46

Page 47: Ministerul Educaţiei Al Republicii Moldova

Form1.Canvas.Brush.Color:=rgb(Random(255),Random(255),Random(255));

Form1.Canvas.Ellipse(x1-30,y1+30,x1+30,y1-30);

inc(j);

end; begin

if i>450 then begin

x2:=400+round(150*cos(i*pi/90));

y2:=400-round(150*sin(i*pi/90));

Form1.Canvas.Ellipse(x2-30,y2+30,x2+30,y2-30);

inc(i);

end

else

begin

x2:=400+round(150*cos(i*pi/90));

y2:=400-round(150*sin(i*pi/90));

Form1.Canvas.Brush.Color:=rgb(Random(255),Random(255),Random(255));

Form1.Canvas.Ellipse(x2-30,y2+30,x2+30,y2-30);

inc(i);

end; end;end;

end;

procedure TForm1.tmr5Timer(Sender: TObject);

var x3,y3:integer;

47

Page 48: Ministerul Educaţiei Al Republicii Moldova

begin //rotirea stelutei subt unghi

begin

end;

if j>459 then begin

Form1.Canvas.Pen.Width:=3;

form1.Canvas.Pen.Color:=rgb(Random(255),Random(255),Random(255));

x3:=350-round(150*sin(j*pi/180));

y3:=350-round(150*cos(j*pi/180));

form1.Canvas.polyline([Point(x3+45,y3- 60), Point(x3-15, y3+70), Point(x3+90,y3- 30),

Point(x3-5,y3- 30), Point(x3+75, y3+70), Point(x3+45,y3-60)]);

inc(j);

end

else

begin

form1.Canvas.Pen.Color:=rgb(Random(255),Random(255),Random(255));

x3:=350-round(150*sin(j*pi/180));

y3:=350-round(150*cos(j*pi/180));

form1.Canvas.polyline([Point(x3+45,y3- 60), Point(x3-15, y3+70), Point(x3+90,y3- 30),

Point(x3-5,y3- 30), Point(x3+75, y3+70), Point(x3+45,y3-60)]);

inc(j);

end; end;

48

Page 49: Ministerul Educaţiei Al Republicii Moldova

procedure TForm1.btn6Click(Sender: TObject);

begin

tmr5.Enabled:=True;

end;

end.

Execuția programului:

Pentru a mișca pe formă o figură,facem clik pe butonul ,,înainte”:

Fig.3.2.forma după execuţie

La apasarea butonului ,,steluţă” avem:

49

Page 50: Ministerul Educaţiei Al Republicii Moldova

Fig.3.3.forma după execuţie

Această imagine va aparea la apasarea pe butonul ,,rotire”:

50

Page 51: Ministerul Educaţiei Al Republicii Moldova

Fig.3.4.forma după execuţie

51