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:

  1. 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;

  2. Na formularzu umieść także komponent Gauge (na palecie Samples).

  3. 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;

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

published
   
property Align;

 

Zapraszam do lektury kolejnego rozdziału w którym zajmiemy się pisaniem odtwarzacza filmów *.avi.

[ Powrót do kursów ]