Spomeňte si na grafické pero, ktorým sme kreslili doteraz a na jeho
základné
procedúry.
Okrem neho, môžeme pracovať aj s relatívnym grafickým perom -- príkazy
preň si môžete pozrieť a sú pripravené aj v unite KorUnit.pas.
Ak ho chceme používať, musíme tento unit pripojiť k tým, ktoré používame
štandardne:
! Otvorme si Delphi a začnime s novým projektom
File
--> New Application.
Pozrite sa do editovacieho okna Unitu1 a do časti uses
(tu sú vymenované štandardné unity, ktoré využívame), dopíšte na začiatok
KorUnit,
projekt
si zapíšte do nového adresára a do tohto adresára si zapíšte
aj súbor KorUnit.pas.
Základné vlastnosti
-
tomuto peru budeme hovoriť korytnačka,
-
pohybuje sa po grafickej ploche, pričom môže zanechávať za sebou stopu
(čiaru)
-
korytnačka si o sebe nesie nejakú informáciu, napr. kde sa nachádza v rovine,
ktorým smerom je natočená, aké má nastavené pero, či je pero zdvihnuté
-
korytnačka má preddefinované nejaké povely - väčšinou slúžia na zmenu polohy,
smeru alebo nastavení pera
Keď chceme pracovať s korytnačkou:
-
najprv musíme zadefinovať premennú typu "korytnačka", napr. var
k:Kor;
-
potom musíme vytvoriť (oživiť) túto korytnačku špeciálnym príkazom:
k:=Kor.Create(0,0,0);
-
od tohoto momentu grafické pero existuje a môžeme ho riadiť príkazmi, napr.
príkazom k.dopredu(100);
korytnačka prejde v momentálnom smere natočenia 100 krokov (úsečku dĺžky
100) a príkazom k.vpravo(90);
sa otočí vpravo (v smere otáčania hod. ručičiek) o 90 stupňov,
-
všimnime si, že vždy, keď oslovujeme korytnačku (prikazujeme jej nejaký
povel), píšeme meno premennej k
a bodku -
-
podobne ako pre príkazy pre grafickú plochu
Kreslíme obrázky
Do formulára dajte prvok Image z palety Additional a v
Objektovom inšpektore mu zmeňte položky Height na 360 a Width na 450, týmto
sa Image1 zväčší. Ďalej tam dajte prvok Button z palety Standard
-- pozrite sa ako
Inicializujme túto plochu tak, aby bola domovskou plochou pre korytnačku:
dvojkliknime na formulár a v editore dopíšme nasledujúci riadok:
procedure
TForm1.FormCreate(Sender: TObject);
begin
inicializuj(Image1);
// procedúra
inicializuj je z KorUnit
end; |
|
Ďalej dvojkliknite na Button vo formulári a editovacom
okne Unitu dopíšte nasledujúce riadky:
procedure TForm1.Button1Click(Sender:
TObject);
var k:Kor;
i:integer;
begin
k:=Kor.Create(0,0,0);
for i:=1 to 4 do
begin
k.dopredu(100); k.vpravo(90);
end;
end; |
|
Program si zapíšte a
vyskúšajte, čo kreslí..
! Do formulára umiestnite ďalšie komponenty
typu Button a nakreslite nasledujúce obrázky:
! Porozmýšľajte nad tým, ako by sa obrázky
kreslili s grafickým perom, ktoré sme poznali doteraz -- museli by
sme použiť zložité matematické operácie so sin, cos a tak
zisťovať príslušné vzdialenosti.
! Zadeklarujte dve grafické perá na rôznych
pozíciách a niektorý z obrázkov sa tak nakreslí dvakrát, napr. na stlačenie
nejakého tlačidla -- Buttonu .
Čo to znamená? Musíme ten istý kód, ktorý kreslí napr. kvetinku napísať
dvakrát a nahradiť premennú K1 premennou K2.
procedure
TForm1.Button1Click(Sender: TObject);
var k1,k2:Kor; i,j:integer;
begin
k1:=Kor.Create(0,0,0);
k1.dopredu(50);
for j:=1 to 6 do
begin
for i:=1 to 9 do begin k1.Dopredu(5); k1.vpravo(10); end;
k1.vpravo(90);
for i:=1 to 9 do begin k1.Dopredu(5); k1.vpravo(10); end;
k1.vpravo(90+60);
end;
// to isté ako pre k1
k2:=Kor.Create(-70,-70,0);
k2.dopredu(50);
for j:=1 to 6 do
begin
for i:=1 to 9 do begin k2.Dopredu(5); k2.vpravo(10); end;
k2.vpravo(90);
for i:=1 to 9 do begin k2.Dopredu(5); k2.vpravo(10); end;
k2.vpravo(90+60);
end;
end; |
|
Toto nám vyriešia metódy objektov -- nasledujúci projekt.
Súbor vznikol na základe prednášok Andreja
Blaha