|
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
|