pondelok 23. novembra 2009

Tvorba aplikácie

Dnes pokračujeme druhou časťou 3-dielneho seriálu „Vytvárame aplikáciu Les vo vývojovom prostredí Lazarus“.

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:
  1. kresliť obdĺžnik, ktorého veľkosti strán budeme generovať z intervalu od 30 do 70
  2. umiestniť ho na náhodnú pozíciu
  3. na jeho hornú časť pridať (nakresliť) zelenú elipsu
  4. vytvoriť tlačidlo, ktorým obrázok zmažeme
Procedúra na kreslenie stromu vyzerá nasledovne:
// 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