Tvorba vlastných unitov
Unity nám slúžia na zadefinovanie
- dátových štruktúr - premenných, konštánt
- podprogramov
Pri stavbe unitov by programátor mal zabezpečiť aby nový unit nevyžadoval objekty, ktoré sám nemá popísané.
- dátový a kódový priestor
- Unit si vytvára svoj
- DS - dátový segment o veľkosti 64kB
- CS - kódový segment o veľkosti 64kB
DS tú sú uložené dátové objekty definované v časti interface a implementation
CS tú je uložený kód - príkazy. Takto možno vytvárať programy, ktorých celkový kód presahuje 64kB
SS zásobník unit nevytvára - keď program zavolá podprogram z unitu všetky lokálne premenné a sampzrejme aj
návratovú adresu si zapíše do svojho zásobníka. (teda podľa možnosti sa v unite vyhýbame možnosti definovať
premenné v podprogramoch - predídeme pretekaniu zásobníka)
- štruktúra
- unit má nasledovnú štruktúru:
- hlavičku
- viditeľnú časť (interface)
- neviditeľnú časť (impementation)
- inicializačnú časť (begin ... end.)
- hlavička
- syntax: unit názov;
V hlavičke popíšeme meno unitu - názov musí byť jedinečný, zhodný s menom súboru v ktorom je unit zapísaný
(napr. súbor matika.pas bude mať v prvom riadku unit matika)
slovo interface je povinné
- viditeľná časť (interface)
- syntax:
interface
Type
deklarácia dátových štruktúr - typov
Var
deklarácia premenných
Const
deklarácia konštánt
hlavičky procedúr a funkcií
procedure podpr1(...);
V tejto časti popíšeme objekty (podprogramy, dáta, typy, konštanty), ktoré chceme aby boli viditelné
z programu, ktorý si túto knižnicu pripne. Podprogramy tu majú len hlavičky - deklaračné a príkazové časti sa popisujú
v časti implementation.
Ak v týchto deklaráciách používame iné knižnice treba na začiatok tejto sekcie (teda hneď za riadok interface)
vložiť
uses knižnica
- neviditeľná časť (interface)
- syntax:
impementation
Type
deklarácia dátových štruktúr - typov
Var
deklarácia premenných
Const
deklarácia konštánt
hlavičky procedúr a funkcií
procedure podpr1(...);
V tejto časti popíšeme objekty (podprogramy, dáta, typy, konštanty), ktoré chceme aby boli neviditelné
z programu, ktorý si túto knižnicu pripne. Tu sa nachádzajú aj podprogramy ktoré majú hlavičky v časti interface.
V imlementačnej časti tiež možno uviesť
uses knižnica;
- inicializičná časť
- je nepovinná. Ak sa v nenachádza v unite musí je "zastúpiť kľúčové slovo end.
syntax:
begin
... príkazy ...
end.
V príkazoch možno používať objekty zadefinované v časti interface a implementation. Ak prípíname k programu viaceré
unity s inicializačnými časťami poradie vykonávania je dané poradím v príkaze uses.