Delphi #2
Dobrze, mo┐emy zaczynaµ. Napiszemy
teraz pierwszy program; postΩpuj wed│ug poni┐szych wskaz≤wek.
1. Otw≤rz program.
2. Kliknij komponent Label,
a nastΩpnie umie╢µ go na formularzu pojedynczym klikniΩciem
3. W Inspektorze Obiekt≤w
w polu Caption wpisz tekst, kt≤ry ma byµ umieszczony w
komponencie
4. Umie╢µ na formularzy
komponent Button; zmie± jego tekst (r≤wnie┐ w polu Caption) na
Poka┐ tekst.
5. Kliknij podw≤jnie na
przycisku, a nastΩpnie wpisz w tre╢ci procedury taki oto tekst:
procedure
TForm1.Button1Click(Sender: TObject);
begin
if
label1.visible=true then begin
{label1 oznacza nazwe komponentu label, ktora
mozemy
edytowac w polu 'Name'. Visible oznacza czy dany komponent ma byc
po uruchomieniu
programu
widoczny (True), czy
tez nie (False)}
label1.visible:=false;
{po nacisnieciu komponent staje sie niewidoczny}
end
else {W przeciwnym wypadku (jezeli komponent jest niewidoczny)
komponent sie pojawia}
label1.visible:=true;
end;
6.
Zaznacz komponent Label, a nastΩpnie w Inspektorze Obiekt≤w zmie±
pole Visible na False.
To ju┐ praktycznie wszystko –
uruchom program naciskaj▒c klawisz F9 lub wybierz polecenie:
Run-> Run.
Ok., nale┐y Ci siΩ wyja╢nienie
niekt≤rych funkcji Inspektora Obiekt≤w.
Funkcja
|
Opis
|
Active
Control
|
Ustawia
domy╢lny komponent tj. w wypadku przycisku bΩdzie on
aktywny i po naci╢niΩciu Enter’a zostanie wykonany kod
w funkcji OnClick przycisku. |
Align |
Ustawia
po│o┐enie komponentu; alNone – brak; alClient – na
ca│ej powierzchni;alBottom – na samym dole obszaru;
alTop – na samej g≤rze; alRight – po prawej stronie;
alLef – po lewej stronie.
|
Cursor |
Ustawia
kursor kt≤ry bΩdzie widoczny po najechaniu mysz▒ nad
dany komponent. |
Enabled |
Gdy
warto╢µ jest False – komponent bΩdzie nieaktywny; gdy
True – przeciwnie. |
Caption |
Tekst,
kt≤ry bΩdzie wy╢wietlany na komponencie lub ( w
przypadku formularza g│≤wnego) na niebieskiej belce. |
Font |
Ustawienie
czcionki. |
Name |
Nazwa
komponentu. |
Visible |
Ustawia
czy komponent bΩdzie widoczny (True), czy te┐ nie (False)
po uruchomieniu programu. |
Height,
Width |
Pozwala
na dok│adne ustawienie szeroko╢ci i wysoko╢ci
komponentu. |
To s▒ najpopularniejsze opcje w
Inspektorze Obiekt≤w. Innymi zajmΩ siΩ w dalszych czΩ╢ciach
kursu.
Teraz postaram siΩ wyja╢niµ jak
napisaµ prost▒ grΩ – bΩdzie to popularna gra dla dw≤ch os≤b
– K≤│ko i krzy┐yk.
Zacznijmy, wiΩc:
1.
Zmie± nazwΩ w polu Caption g│≤wnego formularza na: K≤│ko i
krzy┐yk.
2.
Zmie± pole Name na: Main1stGame.
3.
Umie╢µ na formularzu 9 przycisk≤w Speedbutton (na palecie
Additional). Uwaga! By nie klikaµ za ka┐dym razem na
komponencie, a nastΩpnie na formularzu to podczas pierwszego
klikniΩcia przytrzymajcie przycisk SHIFT. Po umieszczeniu
wszystkich przycisk≤w nale┐y klikn▒µ na ikonie ze strza│k▒.
4.
Ok., teraz zaznacz wszystkie przyciski (obrysowuj▒c je), a nastΩpnie
w Inspektorze Obiekt≤w w polu Width i Height wpisz 25.
5.
Omie╢µ je blisko siebie (przyciski przesuwaµ mo┐na zaznaczaj▒c
je, a nastΩpnie przytrzymuj▒c klawisz CTRL i przemieszczaµ je
kursorami).
6.
Przyciski te nazwij kolejno: s1, s2, s3... itd. a┐ do s9.
7.
Umie╢µ na formularzu kolejne dwa przyciski speedbutton i zmie±
tekst na: „Gracz1” i „Gracz2”,
a w polu Name wpisz: speedbutton1 i speedbutton2.
8.
Zmie± w│a╢ciwo╢µ Flat tych przycisk≤w na True, a w polu w│a╢ciwo╢ci
GroupIndex wpisz 1. W│a╢ciwo╢µ Flat oznacza, ┐e przycisk bΩdzie
„p│aski”, a jego kontury bΩdzie widaµ po najechaniu na±
mysz▒. W│a╢ciwo╢µ GroupIndex oznacza, ┐e wci╢niΩty bΩdzie
tylko jeden przycisk jednocze╢nie tj. w czasie gdy wci╢niemy
jeden to drugi wci╢niΩty ju┐ nie bΩdzie.
9.
Zmie± w│a╢ciwo╢µ Down jednego przycisku na True. Oznacza to,
┐e przycisk zaraz po uruchomieniu programu bΩdzie „wci╢niΩty”.
10. Teraz mo┐esz uzupe│niµ
kod w procedurze OnClick przycisku si.
procedure
TMain1stGame.s1Click(Sender: TObject);
begin
if
speedbutton1.down=true then begin {Je┐eli przycisk
speedbutton1 bΩdzie wci╢niΩty to na przycisku s1 ujrzysz literΩ
‘X’ – w przeciwnym wypadku – ‘O’.}
s1.caption:='X';
end;
if
speedbutton2.down=true then begin
s1.caption:='O';
end;
end;
11. Powy┐szy kod wpisz
dla pozosta│ych przycisk≤w z t▒ r≤┐nic▒, ┐e zamiast s1
wpisuj kolejne przyciski: s1, s2 itd.
Teraz mo┐esz ju┐ uruchomiµ
program, lecz zapewne zauwa┐ysz, ┐e po ka┐dym naci╢niΩciu na
przycisku trzeba zmieniaµ gracza. Trzeba to poprawiµ!
12. Zaznacz przycisk s1,
a nastΩpnie w Inspektorze Obiekt≤w wybierz zak│adkΩ Events.
13. Znajduje siΩ tam
opcja onMouseDown. Kliknij w puste bia│e pole; pojawi siΩ edytor
kodu, kt≤ry uzupe│nij nastΩpuj▒co:
if
speedbutton1.down=true then begin
speedbutton2.down:=true;
end else
speedbutton1.down:=true;
14.
Teraz zaznacz przycisk s2 poczym w Inspektorze Obiekt≤w
wybierz zak│adkΩ Events, a nastΩpnie rozwi± pole
onMouseDown i
wybierz s1MouseDown.
15.
Post▒p tak z pozosta│ymi przyciskami.
Odpal program. Hurra! Dzia│a!
Fajnie by by│o gdyby program posiada│
przycisk kt≤ry spowoduje i┐ bΩdziemy mogli graµ od pocz▒tku.
Trzeba siΩ wiΩc tym zaj▒µ.
1.
Umie╢µ na formularzu jeszcze jeden przycisk:Button.
2. Zmie±
jego tekst na: Ponowna tura. Rozszerz przycisk tak, aby widoczny
by│ ca│y napis.
3. Kliknij dwukrotnie na przycisku i
umie╢µ w nim nastΩpuj▒cy kod:
procedure TMain1stGame.Button1Click(Sender: TObject);
begin
s1.caption:='';{spowoduje
to wymazanie tekstu z przycisk≤w}
s2.caption:='';
s3.caption:='';
s4.caption:='';
s5.caption:='';
s6.caption:='';
s7.caption:='';
s8.caption:='';
s9.caption:='';
end;
Zajmiemy siΩ jeszcze dodaniem okna z
informacj▒ o prawach autorskich. PostΩpuj wed│ug poni┐szych
wzkaz≤wek:
1.
Z menu Plik wybierz New
Form.
2.
Zmie± tekst na: O programie.
3.
Zmie± nazwΩ na: about. Dostosuj okno do rozmiar≤w, jakie uwa┐asz
za odpowiednie.
4.
Z Inpektora Obiekt≤w rozwi± menu BorderIcons, a nastΩpnie zmie±
polecenia biMinimize, biMaximize na False. Spowoduje to wy╢wietlenie
w oknie jedynie okony Zamknij.
5.
Umie╢µ na formularzu komponent Label. Zmie± jego tekst na: ©
Copyright 2000. Uwaga! Znak „©” uzyskuje siΩ przytrzymuj▒c
lewy Alt i (przy w│▒czonej klawiaturze numerycznej) wystukaniu
na klawiaturze numerycznej cyfr 0169.
6.
Umie╢µ kolejny komponent Label i zmie± jego tekst na: Adam
Boduch; zmie± rozmiar czcionki klikaj▒c na krzy┐yku. Rozwinie
siΩ podmenu w kt≤rym to w polu Size wpisz 12. Rozwi± pole Style
i zmie± warto╢µ fsBold na True.
7.
Umie╢µ na formularzu komponent Image(na palecie Additional) i
zmniejsz jego rozmiary. W tym kwadracie umieszczony bΩdzie
rysunek. W Inspektorze Obiekt≤w wybierz menu Picture, nastΩpnie
kliknij na symbol trzykropka.
8.
Naci╢nij Load i wybierz jaki╢ rysunek. Naci╢nij OK.
9.
Teraz dodaj przycisk BitBtn (na palecie Additional) , a w
Inspektorze Obiekt≤w rozwi± pole Kind i wybierz bkOk.
Pojawi│ siΩ tam taki „ptaszek”.
Po naci╢niΩciu przycisku okno samo siΩ zamknie.
10. Teraz ju┐ tylko
kosmetyczne poprawki. Wybierz komponent Bevel i obrysuj obszar kt≤ry
ma byµ wziΩty w ramke. Zmie± jego wygl▒d w polu Shape na
bsFrame.
Teraz powr≤µ do formularza g│≤wnego i umie╢µ w nim
komponent Label; zmie± jego tekst na:
wersja 1.0. Kliknij na nim podw≤jnie,
a nastΩpnie w edytorze kodu wpisz nastΩpuj▒cy tekst:
procedure
TMain1stGame.Label1Click(Sender: TObject);
begin
about.showmodal;{powroduje
wy╢wietlenie okno about}
end;
Teraz ponownie zaznacz
komponentLabel1i w Inspektorze Obiekt≤w w polu Cursor wybierz
kursor crHandPoint. Gdy najedziesz mysz▒ na komponent to kursor
zmieni kszta│t. Zapisz wszystko i spr≤buj odpaliµ program.
Zostaniesz zapewne zapytany czy dodaµ formularz about do
programu. Odpowiedz twierdz▒c▒ i spr≤buj uruchomiµ go jeszcze
raz.
Je┐eli co╢ nie dzia│a to por≤wnaj
sw≤j program z tym co jest do│▒czonydo tego kursu.
To ju┐ wszystko w tym odcinku
programowania. W kolejnych czΩ╢ciach zajmiemy siΩ unowocze╢nianiem
programy ‘K≤│ko i krzy┐yk’, dodamy do niego grafikΩ, d╝wiΩk
oraz parΩ innych opcji. Nie wahajcie siΩ pisaµ. Je┐eli macie
jakie╢ problemy, pytania:
Adam Boduch
programowanie@poczta.onet.pl
http://www.programowanie.of.pl
|