Minule sme sa naučili načítavať hodnoty, porovnávať ich, kresliť náš prvý geometrický útvar so začiatkom (ľavým horným vrcholom) na pozícii [0,0], vyplniť ho gaštanovohnedou farbou.
Našim dnešným cieľom je naučiť sa:
- kresliť obdĺžnik, ktorého veľkosti strán budeme generovať z intervalu od 30 do 70
- umiestniť ho na náhodnú pozíciu
- na jeho hornú časť pridať (nakresliť) zelenú elipsu
- vytvoriť tlačidlo, ktorým obrázok zmažeme
// hlavička procedúry
procedure TForm1.Button1Click(Sender: TObject);
// deklarovanie premenných
var a, b, c, x, y: integer;
// telo procedúry
begin
// generovanie náhodných premenných (veľkost kmeňa stromu)
a:=30+random(41);
b:=30+random(41);
// podmienený príkaz (zabezpečí, aby kmeň stromu mal väčšiu výšku ako šírku)
if a>b then begin c:=a; a:=b; b:=c end;
// generovanie náhodných premenných (pozícia stromu)
x:=random(Image1.Width);
y:=random(Image1.Height);
// čierna farba pera (farba, ktorou sa vykreslí obrys obdĺžnika)
Image1.Canvas.Pen.Color:=ClBlack;
// gaštanovohnedá farba štetca (farba, ktorou sa vyplní plocha obdĺžnika)
Image1.Canvas.Brush.Color:=ClMaroon;
// obdĺžnik (kmeň stromu) so súradnicami dvoch protiľahlých bodov, medzi ktoré sa obdĺžnik nakreslí
Image1.Canvas.Rectangle(x,y,x+a,y+b);
Image1.Canvas.Pen.Color:=ClBlack;
// zelená farba štetca
Image1.Canvas.Brush.Color:=ClGreen;
// elipsa (koruna stromu) so súradnicami dvoch protiľahlých bodov, medzi ktoré sa nakreslí obdĺžnik, do vnútra ktorého je elipsa vpísaná
Image1.Canvas.Ellipse(x-10,y-20-b,x+a+10,y+20);
Procedúra na zmazanie grafickej plochy:
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=ClWhite;
Image1.Canvas.FillRect(Image1.ClientRect);
end;
Dokončenie nabudúce...
Na záver opäť malá rekapitulácia nových príkazov, vlastností komponentov, zosumarizovanie poznatkov:
Random(n) – zvolí niektoré číslo spomedzi čísiel od 0 do n-1
Image1.Width – vráti šírku plochy obrázka
Image1.Height – vráti výšku plochy obrázka
Ellipse(x1, y1, x2, y2) – elipsa sa vpíše do pomyselného obdĺžnika s ľavým horným (x1, y1) a pravým dolným vrcholom (x2, y2)
Image1.ClientRect – vráti veľkosť obdĺžnika popisujúceho grafickú plochu
Inšpektor objektov slúži na nastavovanie vlastností a udalostí komponentov:
Caption – popis komponentu (napr. nápis „zmaž“, ktorý sa objaví na tlačidle)
Name – identifikátor (meno, názov) komponentu
Heigh – výška komponentu
Width – šírka komponentu
OnClick – udalosť, ktorá nastane pri kliknutí na tlačidlo
OnMouseDown – udalosť, ktorá nastane pri stlačení tlačidla myši
OnMouseMove – udalosť, ktorá nastane pri pohybe myši
OnMouseUp – udalosť, ktorá nastane pri pustení tlačidla myši
Pri ukladaní programu sa vytvárajú viaceré súbory s rôznymi príponami:
Project1.exe – spustiteľný program
Unit1.lfm – vnútorná definícia formulára – aké sú a kde sa nachádzajú komponenty, napr. Image1, Button1
Project1.lpi – nastavenia kompilátora (textový súbor)
Project1.lpr – lazarus projekt (textový súbor, hlavný “pascalovský” program)
Unit1.pas – programový popis formulára, čo a ako má formulár robiť
Žiadne komentáre:
Zverejnenie komentára