MENU

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

 
 

Contents copyright © 2000 - 2001, Krzysztof Dziewo±ski. All rights reserved.