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

 

 Copyright © 2000 PTiK. Wszystkie prawa zastrze┐one.
 Kopiowanie tekst≤w w ca│o╢ci lub we fragmentach bez zgody redakcji i autor≤w zabronione.