Kurs Delphi cz. II
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:
programowanie@poczta.onet.pl
Autor:
Adam Boduch
boduch@poland.com
Kurs udostΩpni│ :
http://www.programowanie.of.pl
|