Rozdział 16
[ Powrót do kursów ]
W tym rozdziale zajmiemy się jeszcze tablicami i innymi temu podobnymi, ale już od przyszłego rozdziału zaczniemy pisać edytor plików HTML.
Tablice
Do czego służą tablice? Załóżmy, że chcesz w pamięci komputera umieścić tablicę w której chcesz zapisać 10 liczb typu Integer. Taka deklaracją wyglądałaby następująco:
var
Tablica : array[0..9] of Integer;
Zauważ specyficzną budowę tablicy. Rozmiar tablicy
poprzedzony jest słówkiem array. W nawiasach kwadratowych następuje
wpisanie cyfr (rozmiaru tablicy). Na końcu następuje przypisanie
zmiennej.
Każdy element tablicy zajmuje 4 bajty. Łatwo więc wyliczyć,
że deklaracja powyższej tablicy zajmować będzie w pamięci 40 bajtów.
Teraz gdy chcesz się odwołać do poszczególnego elementu np. w celu przypisania jej jakiejś liczby należy zrobić to tak:
Tablica[0] := 200;
Tablica[1] := 40;
Tablica[5] := -150;
itd....
Tablice możesz wypełniać także po jej zadeklarowaniu, lecz
wtedy musisz użyć stałej const.
const
Tablica
: array[0..2] of Integer = (100, 200,
300);
W Delphi 4 wprowadzono Tablice Dynamiczne, czyli takie których pamięć można przydzielać w zależności od potrzeb.
var
Tablica : array of Integer;
begin
SetLength(Tablica, 20);
Zauważ, że na początku nie podano rozmiarów tablicy. Nastąpiło
to dopiero wtedy gdy użyta została funkcja SetLength - nastąpiło wówczas
wpisanie rozmiaru - 20.
W czasie wykonywania programu możesz zwiększać rozmiar tablicy przy pomocy
funkcji Copy.
Copy(Tablica, 400);
W powyższym przypadku nastąpiło zwiększenie rozmiarów tablicy do 400.
W połączeniu z tablicami używane są także funkcję Low i Height. Funkcja Low zwraca indeks pierwszego elementu tablicy, a funkcja Height ostatniego.
var
Pierwszy, Ostatni : Integer;
Tablica
: array[2..4] of Integer;
begin
Pierwszy := Low(Tablica);
Ostatni := Height(Tablica);
Metody i klasy
Na pewno podczas programowania w Delphi zauważyłeś tajemnicze słówka private, public. Metody są to funkcje, procedury, które są składnikami klasy. Klasa natomiast jest obiektem składającym się z procedur i funkcji. Klasy posiadają swoje deklarację, które to umieszcza się zawsze w sekcji type. Żeby lepiej to zrozumieć wykonajmy program, a konkretnie animację. Wykorzystasz w ten sposób wiedzę zdobytą w poprzednich rozdziałach:
Umieść na formularzu dwa przyciski. Przejdź teraz do
edytora kodu (F12) i przesuń kursor przed sekcję Implementation. Odszukaj
wyraz private. Pod nim umieść następującą zmienną:
Done : Boolean;
Na formularzu umieść także komponent Gauge (na palecie Samples).
Treść procedury pierwszego przycisku uzupełnij następująco:
Done := False;
while not Done do begin
Application.ProcessMessages;
Sleep(100);
Gauge1.Progress := Succ(Gauge1.Progress);
if (Done) then
Break;
Treść procedury OnClick drugiego z przycisków
uzupełnij następująco:
Done := True;
OBJAŚNIENIE: Na samym początku zmiennej Done przypisywana jest wartość False. W następnej linii wykorzystana jest pętla while. Użyty jest tutaj operator not, całe wyrażenie w tłumaczeniu oznacza: "Jeżeli Done nie jest wartością True wykonuj następujące polecenia". Wydaje mi się, że 3 kolejne linie nie wymagają objaśnień. Warto wspomnieć o dwóch ostatnich liniach. Zauważ, że wartości done nie jest przypisywana wartość True tzn. jest, ale nie musisz tego pisać - jest to wartość domyślna.
Teraz rozumiesz o co chodzi? W sekcji private możesz umieszczać nazwy zmiennych, które używasz w wielu procedurach. Nie musisz za każdym razem deklarować tej zmiennej w każdej procedurze.
Metody prywatne (private) - jak sama nazwa wskazuje są to metody do które nie są widoczne na zewnątrz klasy, nie można się do nich odwoływać z funkcji i procedur będących w innej klasie.
Metody publiczne (public) - zawierają funkcję za pomocą których możesz "komunikować" się ze światem zewnętrznym
published - ten poziom dostępu używany jest przy pisaniu komponentów. Zawiera właściwości które znajdą się w Inspektorze Obiektów.np:
published
property Align;
Zapraszam do lektury kolejnego rozdziału w którym zajmiemy się pisaniem odtwarzacza filmów *.avi.
[ Powrót do kursów ]