Delphi 5 - kurs programowania
Witam ponownie, jak Wam idzie pisanie programów? Zapraszam na kolejną część kursów programowania w Delphi. Najpierw nieco Object Pascala, a później unowocześnianie programu "Kółko i Krzyżyk".
Gdy zapiszecie swój program na dysku to zapewne zwrócicie uwagę na sporą liczbę plików powstałych wraz z programem. Oczywiście nie musisz dawać kumplom tych wszystkich plików - wystarczy tylko ten z rozszerzeniem *.exe.
Jedna uwaga: Gdy dasz program koledze, który nie ma zainstalowanego Delphi, to program się nie uruchomi. Dzieje się tak dlatego, że twój kumpel nie posiada pliku vcl50.bpl. Oczywiście możesz dołączać ten plik do każdego programu, lecz z racji jego rozmiaru zalecane jest zrobić coś takiego:
- Z menu Project wybierz Options.
- Wybierz zakładkę Packages
- Zaznacz opcje Bulid with runtime packages
- Naciśnij OK i z menu Project wybierz Bulid
Okno Options zawiera inne pożyteczne zakładki takie jak:
- application - dzięki tej zakładce możemy wybrać ikonę i wpisać tytuł naszego pliku wykonywalnego.
- version info - po zaznaczeniu opcji Include version information in project możesz sprawić iż do twojego pliku wykonywalnego w zakładce Właściwości pojawi się okno o wersji produktu. Możesz wpisać w nim podstawowe dane jak: Nazwa firmy, wersja, komentarz itd. Po zaznaczeniu opcji Auto-Increment bulid number wersja pliku będzie się zwiększała o jedną tysięczną przy każdym budowaniu (Bulid) programu.
Teraz pora aby przejść do dalszej nauki Object Pascala.
Operatory
Spójrz na poniższy przykład:
if (x>20) and (y>20) then
{kod programu}
Operatorami w powyższym przykładzie są: ">" i "and". Operatory to inaczej przypisanie, porównywanie jakiś wartości.
Operator |
Opis |
:= |
Przypisanie zmiennej jakiś wartości, np: x:=10 |
= |
Znak równości, np. if x=10 then begin Gdybyś w tym przykładzie użył operatora przypisania to program nie skompilował by się i wygenerował by wyjątek ponieważ nie przypisujemy x wartości 10 lecz chcemy jedynie sprawdzić to wyrażeniem if |
<> > < <= >= |
Oznacza to kolejno: różny od (np. if x<>10), większy niż, mniejszy niż, mniejszy równy niż, większy równy niż. |
and |
Od angielskiego: i Sprawdza warunek zawarty przed tym słowem jak i po tym słowie. |
or |
Od angielskiego: lub. if (x=10) or (x=20) then |
not |
Jeżeli nie. if not prawda then |
Instrukcja goto
Instrukcja ta oznacza tyle co: idź do. Umożliwia ona skok do umieszczonej w kodzie etykiety poprzedzonej słówkiem Label, ale nie jest to komponent label.
var label powtarzanie;
begin powtarzanie; {kod instrukcji goto} {dalszy kod programu} if x<69 then goto powtarzanie; end;
Jeżeli nie zostanie spełniony warunek, w tym wypadku, jeżeli x nie jest większe od 69 to następuje skok do słowa powtarzanie i tym samym wykonanie instrukcji po słowie powtarzanie.
Instrukcja case
Spójrz na poniższy przykład:
case Ilosc_paliwa of 0: paliwo:=0; 10: paliwo:=1; 50: paliwo:=3; end;
Jeżeli Ilosc_paliwa przyjmie wartość 0, to wykonana zostanie funkcja paliwo:=0; Uwaga! Wynik musi być typu Integer, Byte itd., nie może być natomiast typu przecinkowego lub typu Srting. Nie możesz zapisać:
case combobox1.itemindex of 0: memo.lines.add('To nie przejdzie ponieważ jest to wartość typu String');
Continue i Break
Te dwie komendy używane są wraz z pętlami. Komenda Continue powoduje natychmiastowy skok do punktu stopu tj. do końca procedury.
if speedbutton1.down=true then continue {tutaj wykonywany zostaje kod po komendzie contiunue}
Komenda Break powoduje całkowite zakończenie działania pętli:
if done=true then begin {kod} end else break;
____
Na zakończenie tego rozdziału zrób prosty program, który będzie dodawał, odejmował i mnożył:
- Umieść na formularzu 3 komponenty Edit
- Umieść na formularzu przycisk i zmień jego właściwość Caption na OK
- Umieść na formularzu komponent RadioGroup; naciśnij w Inspektorze Obiektów właściwość Items i w oknie wpisz jeden pod drugiem: dodawanie, odejmowanie, mnożenie.
- Właściwosć Itemindex komponentu RadioGroup ustaw na 1.
- Uzupełnij procedure Button1Click następująco:
procedure TForm1.Button1Click(Sender: TObject); begin case RadioGroup1.itemindex of 0: edit3.text:= inttostr(strtoint(edit1.text)+(strtoint(edit2.text))); 1: edit3.text:= inttostr(strtoint(edit1.text)-(strtoint(edit2.text))); 2: edit3.text:= inttostr(strtoint(edit1.text)*(strtoint(edit2.text))); end; end;
Jeżeli program nie działa prawidłowo porównaj swój kod z moim. Teraz możecie już przejść do następnego rozdziału, w którym to zajmiemy się udoskonalaniem programu "Kółko i Krzyżyk"
Ostatnim razem stworzyłeś program "Kółko i Krzyżyk". Teraz dodamy do niego grafikę muzykę.
Potrzebne nam będą 3 rysunki: jeden z krzyżykiem, z kółkiem i pusty.
- Do stworzenia rysunków potrzebny nam będzie jakiś program graficzny (nam całkowicie wystarczy Paint)
- Rozmiary rysunków muszą być zbliżone do rozmiaru przycisków w twoim programie; rysunki muszą mieć także szare tło (takie jak kolor przycisków).
- Trzeci przycisk musi mieć jedynie szare tło; gdy stworzyłeś już przyciski to umieść je w katalogu z programem.
- Umieść przycisk, który będzie służył jako rozpoczęcie nowej tury; treść jego procedury zmodyfikuj następująco:
procedure TMain1stGame.Button10Click(Sender: TObject); var Bitmap5:TBitmap;
begin bitmap5:=TBitmap.create; bitmap5.LoadFromFile('nic.bmp'); button1.glyph:=bitmap5; button2.glyph:=bitmap5; button3.glyph:=bitmap5; button4.glyph:=bitmap5; button5.glyph:=bitmap5; button6.glyph:=bitmap5; button7.glyph:=bitmap5; button8.glyph:=bitmap5; button9.glyph:=bitmap5; speedb.down:=true; speedb2.down:=false; end; Wyjaśnienie: Na samym początku deklarowana jest zmienna Bitmap5. Później następuje stworzenie bitmapy przy pomocy polecenia bitmap5:=TBitmap.create; Następnie następuje wczytanie uprzednio stworzonej bitmapy: bitmap5.loadfromfile('nic.bmp'); Kolejną funkcją jest przypisanie każdemu z przycisków bitmapę nic.bmp. - Teraz musisz zastąpić starą procedure nową:
procedure TMain1stGame.Button1Click(Sender: TObject); var Bitmap:TBitmap; Bitmap2:TBitmap; begin bitmap:=TBitmap.Create; bitmap.LoadFromfile('krzyzyk.bmp'); bitmap2:=TBitmap.Create; bitmap2.LoadFromFile('kolko.bmp'); if speedb.down then button1.glyph:=bitmap; if speedb2.down then button1.glyph:=bitmap2;
end; - Skopiuj ten kod i wstaw do pozostałych przycisków z tą różnicą, że w przedostatniej i czwartej od końca linii zastąp button1 na nazwę przycisku.
Teraz możesz uruchomić program - działa! Fajnie by było gdyby program
posiadał funkcje odtwarzania muzyki. Zróbmy więc to!
- Umieść komponent MediaPlayer (na palecie System ); zmień jego właściwość visible na False; nie ma potrzeby aby był widoczny.
- Umieść komponent CheckBox; zmień jego właściwość Caption na Włącz muzykę, a właściwość Name na muzyka.
- Kliknij podwójnie na komponent i uzupełnij procedure:
if muzyka.checked=true then begin MediaPlayer.filename:='muzyka.mid'; MediaPlayer.open; MediaPlayer.play; end else MediaPlayer.stop;
Teraz umieść w katalogu z programem plik muzyczny i zmień jego nazwę na muzyka.mid.
To już wszystko tym razem. W kolejnej części zajmiemy się dokończeniem programu Kółko i Krzyżyk i zaczniemy całkiem nowy program. Zapraszam następnym razem!
Nie wahajcie się pisać: programowanie@poczta.onet.pl
Początek artykułu

Copyright (c) 1999 - 2000 NoName |
|