ROZDZIAŁ 5





Przejdźmy od razu do nauki Object Pascala.

Funkcja Pred i Succ
Funkcja Pred zwraca poprzednik swojego argumentu np. Pred liczby 50 da 48. [ Pred(50) da 49 ] np:
var
x: integer;
begin
x:=10;
for i:=0 to Pred(x) do begin
memo.lines.add('To zdanie powtórzy się 9 krotnie');
Funkcja Succ natomiast odwrotnie - odlicza to tyłu. Succ(100) daje 101.

Łańcuchy
Istnieje kilka rodzajów łańcuchów: shortstrings, longstrings. Łańcuchy typu shortstrings nie mogą przekroczyć 255 znaków, np: var
lancuch: shortstring; // Nie może przekraczać 255 znaków.
lancuch2: string[5]; //Nie może przekroczyć 5 znaków
Wystarczy, że będziesz pisał samo string wtedy łańcuch nie będzie miał ograniczeń (długi łańcuch).

Komentarze
Mało pisałem o komentarzach w Delphi. Stosuje się je, aby przekazać innym programistą jakąś wiadomość np.
{Staszek, ten kod jest do d***}
Istnieje kilka rodzajów komentarzy: (* treść *), {treść}, //komentarz jednej linii


Kody ASCII
Każdy znak ma swój odpowiednik w kodach ASCII. Chciałbyś np. postawić znak "©"? Nie ma sprawy. Naciśnij lewy Alt i przy wyłączonej klawiaturze numerycznej wystukaj 0169. Skąd to wiem? Taki jest odpowiednik tego znaku w kodzie ASCII. Zrób coś takiego:
1. Umieść na formularzu przycisk i komponent Memo.
2. Treść procedury uzupełnij następująco:
procedure TForm1.Button1Click(Sender: TObject);
var
y,i:integer;
begin
for i:=32 to 255 do
memo1.lines.add(inttostr(0)+inttostr(i)+'='+chr(i));
end;
Teraz po naciśnięciu przycisku na ekranie zobaczysz znak i odpowiadający mu znak ASCII.

Pliki dołączone
Pliki dołączone to pliki zawierające kod źródłowy który w trakcie kompilacji dołączony jest do twojego projektu.
W tym celu z menu File wybierasz New, a następnie wybierasz plik tekstowy. Piszesz w nim np.
const
Szerokosc=300;
Wysokosc=200;
Wybierasz filtr "Any File" i wpisujesz nazwę z rozszerzeniem *.INC. Żeby dołączyć taki plik d do projekru zrób coś takiego:
{ $I PLIK.INC }
Wbrew pozorom to nie jest komentarz, a tzw. dyrektywa. Kompilator traktuje to tak, gdyby kod programu został tu wklejony.
Nie wspomniałem jeszcze o jednej rzeczy. Pisząc na przykład tak: edit1.text:='Tekst który właśnie czytasz jest baaaaaardzo długi i dlatego nie mieści się w jednej linii';
kompilator wygeneruje błąd. Oba wersy musimy z sobą połączyć znakiem "+". edit1.text:='Tekst który właśnie czytasz jest baaaaaaardzo długi '+ 'i dlatego nie mieści się w jednej linii

ROZDZIAŁ 6


Tym razem zajmiemy się jeszcze jedną opcją w programie "Kółko i Krzyżyk". Dodamy opcje wpisywania imion. W końcu głupio jest jak na przyciskach widnieje napis "Gracz 1", "Gracz 2".
Zrób tak:
1. Umieść na formularzu dwa komponenty Edit i przycisk
2. Treść procedury:
procedure TMain1stGame.Button11Click(Sender: TObject);
begin
speedb.caption:=edit1.text;
speedb2.caption:=edit2.text;
end;
Prawda, że proste? Przydałaby się jakaś pomoc tj. Pomoc na pasku stanu. Jeżeli umieściłeś na formularzu komponent StatusBar zrób coś takiego.
1. Zmień jego właściwość AutoHint na True.
2. Zaznacz wszystkie przyciski (oprócz przycisku: "Nowa tura", "Gracz 1", "Gracz
2" i wpisz w Inspektorze Obiektów w pole Hint np. coś takiego: Kliknij nań | Kliknij przycisk, aby postawić kółko lub krzyżyk.
Zauważ, że oba zdania oddziela znak "|" - Pipeline. To co jest przed tym znakiem pojawiać się będzie gdy ktoś najedzie myszą na przycisk, a drugi człon pojawiać się będzie na pasku zadań. To już chyba wszystko jeśli chodzi o program Kółko i Krzyżyk. Kod źródłowy tego programu możesz znaleźć na mojej stronie: www.programowanie.of.pl Jeżeli unowocześniliście ten program to przyślijcie mi jego kod źródłowy, a nowa wersja będzie umieszczona na stronie.
Nie napisałem nic o kodach źródłowych. Jeżeli chcesz przenieść na komputer kolegi kod źródłowy wystarczą pliki z rozszerzeniem *.pas, *.dpr, *.dfm. Pozostałe kompilator odbuduje podczas kompilacji.
Teraz należałoby wspomnieć coś o innych funkcjach Delphi. Istnieją tzw. wyjątki. Dzięki temu zawsze możesz poinformować o błędzie np.
try
//kod programu
except
//wyjątek
Objaśnienie: Słowo try (od ang. Spróbuj) oznacza akcje po której nastąpi wykonanie funkcji która jest pod słowem try
Po słowie except następuje kod wyjątku. Istnieje także słowo finally które wstawia się zamiast słowie except. Po nim można umieścić funkcje która zostanie wykonana niezależnie od tego czy nastąpił wyjątek.
Przydatną funkcją jest funkcja losowania.
x:=10;
randomize;
edit1.text:=inttostr(random(x));
W oknie Edit następi wylosowanie liczb z zakresu od 1 do 9. Procedurę losującą oznacza się słówkiem random.
Często zachodzi potrzeba wyświetlenia drugiego okna. W tym celu należy z menu File wybrać New Form i zapisać ją. Później w procedurze np. Button1 napisać: Form2.showmodal;
w przypadku gdy drugie okno jest nazwane Form2. Słówko showmodal oznacza, okno modalne tj. takie, które będzie można modelować, czy zmieniać położenie. W przeciwnym wypadku wystarczy tylko słówko show.