Jednotky v programu

V jazyku Turbo Pascal má programátor možnost přístupu k velkému počtu předdefinovaných konstant, datových typů, procedur a funkcí. Protože se všechny prvky v jednom programu obvykle nevyužijí, jsou rozděleny do skupin, které se nazývají jednotky (units). Rozdělení programových prvků do jednotek umožňuje programátorovi využívat pouze ty prvky, které používá ve své aplikaci. Jednotku lze chápat jako knihovnu deklarací konstant, datových typů, proměnných, procedur a funkcí. Deklarace uvedené v jednotce můžeme používat v aplikačních programech. Do jednotky je zvykem ukládat prvky, které jsou ve vzájemném vztahu. V záhlaví aplikačního programu se uvádějí jména jednotek, které program potřebuje při překladu. Jména jednotek se uvádějí za klauzulí uses.


Součástí překladače Turbo Pascal 7.0 je sada standardních jednotek:

System - obsahuje všechny standardní procedury a funkce

CRT - je jednotka pro práci s obrazovkou

DOS - je jednotka pro komunikaci s operačním systémem DOS

WinDOS - je jednotka pro komunikaci s operačním systémem v prostředí Windows

Strings - podporuje práce s řetězci ukončenými nulou

Overlay - obsahuje podporu vytváření modulů pro překrývání kódu

Printer - je jednotka pro práci s tiskárnou

Graph - je jednotka pro grafické aplikace

Turbo3 - obsahuje procedury a funkce, které zajišťují kompatibilitu s Turbo Pascalem 3.0

Graph3 - obsahuje grafické prostředky Turbo Pascalu 3.0.

Programátor má možnost si sestavit vlastní jednotku.

 

Jednotka CRT

Jednotka CRT obsahuje programové prostředky pro řízení systému zobrazení, vstupu z klávesnice, obsahuje podporu práce s okny a definování barevného ladění výstupů. Využívání jednotky se definuje v hlavním programu uvedením jména jednotky CRT za klauzulí uses. Velkou předností užívání jednotky CRT je zvýšená rychlost výstupních operací.

V jednotce CRT je deklarována skupina konstant, které se využívají pro definování barvy výstupu:

const

 

Funkce testování a čtení vstupu z klávesnice

Funkce KeyPressed

Zápis: KeyPressed:boolean;

Funkce KeyPressed vrací logickou hodnotu True, byla-li stisknuta libovolná znaková klávesa. Ve všech ostatních případech funkce vrací logickou hodnotu False. Stisknutý znak se uloží do vyrovnávací paměti klávesnice, ze které se může vyjmout například pomocí funkce ReadKey. Pokud se znak z vyrovnávací paměti nevyjme, opakované volání funkce KeyPressed vrací neustále logickou hodnotu True.

Funkce ReadKey

Zápis: ReadKey:char;

Funkce ReadKey přečte jeden znak z klávesnice; přečtený znak se nezobrazí na obrazovce. Jestliže funkce KeyPressed vrací logickou hodnotu True před voláním funkce ReadKey, funkce vrací znak okamžitě. V opačném případě funkce čeká na stisk klávesy. Funkce najde uplatnění v procedurách testu klávesnice.

 

Procedury a funkce určené k programování oken a adresování obrazovky

Procedura GoToXY

Zápis: GoToXY (X,Y:byte);

Procedura GotoXY nastaví polohu kurzoru v aktuálním okně na definovanou souřadnici. Polohu kurzoru definují parametry X a Y. X definuje souřadnici sloupce, Y definuje souřadnici řádku. Souřadnice levého horního rohu okna je (1,1). Pokud se procedura vyvolá s nepřípustnými parametry, její volání se ignoruje.

Procedura Window

Zápis: Window (X1,Y1,X2,Y2:byte);

Procedura Window definuje textové okno na obrazovce. Parametry X1 a Y1 jsou výrazy typu byte a vyjadřují souřadnice levého horního rohu okna. Parametry X2 a Y2 jsou výrazy typu byte a vyjadřují souřadnice pravého spodního rohu okna. Levému hornímu rohu obrazovky odpovídá souřadnice (1,1), a tato souřadnice se transformuje do levého horního rohu vytvořeného okna. Minimální velikost textového okna je jeden sloupec krát jeden řádek. Jsou-li souřadnice okna mimo rozsah obrazovky, volání procedury se ignoruje. Po vytvoření okna na obrazovce se všechny souřadnice vztahují k tomuto oknu. Základní adresovatelná plocha celé obrazovky je 80 sloupců a 25 řádků.

Funkce WhereX

Zápis: WhereX:byte;

Funkce WhereX vrací horizontální souřadnici polohy kurzoru vzhledem k aktuálnímu oknu. Výsledek funkce je typu byte a reprezentuje souřadnici sloupce.

Funkce WhereY

Zápis: WhereY:byte;

Funkce WhereY vrací vertikální souřadnici Y polohy kurzoru vzhledem k aktuálnímu oknu. Výsledek funkce je typu byte a reprezentuje souřadnici řádku.

 

Procedury pro práci s obrazovkou a řádky

Procedura ClrScr

Zápis: ClrScr;

Procedura ClrScr vymaže obsah aktuálního okna a umístí kurzor do levého horního rohu. Obrazovka se po vymazání vyplní aktuální barvou pozadí nastavenou procedurou TextBackground. Procedura se vztahuje k aktuálnímu oknu.

Procedura ClrEol

Zápis: ClrEol;

Procedura ClrEol vymaže všechny znak od pozice kurzoru do konce řádku. Pozice kurzoru se nezmění. Vymazané znaky se nahradí znakem mezera. Vymazaná část řádku se vyplní aktuální barvou pozadí nastavenou pomocí procedury TextBackground. Procedura ClrEol se vztahuje k aktuálnímu oknu, znaky se vymažou vždy od pozice kurzoru po pravý okraj okna.

Procedura DelLine

Zápis: DelLine;

Procedura DelLine vypustí řádek, na kterém je nastaven kurzor. Řádek, na kterém je nastaven kurzor, se vypustí, a všechny řádku pod ním se posunou o řádek nahoru. Na spodním okraji okna nebo celé obrazovky se přidá řádek nový. Procedura se vztahuje k aktuálnímu oknu. Nově vložený řádek se zobrazí v aktuální nastavené barvě pozadí, která se nastavuje procedurou TextBackground.

Procedura InsLine

Zápis: InsLine;

Procedura InsLine vloží prázdný řádek na aktuální pozici kurzoru. Všechny řádky pod vloženým řádkem se posunou o jeden řádek směrem dolů a spodní řádek se posune mimo rámec obrazovky nebo okna. Procedura se vztahuje k aktuálnímu oknu. Vložený řádek se zobrazí v barvě nastavené procedurou TextBackground.

 

Procedury pro nastavení barevného ladění

Procedura TextBackground

Zápis: TextBackground (Barva:byte);

Procedura TextBackground nastaví barvu pozadí. Parametr Barva je celočíselný výraz typu byte, který může nabývat hodnot v rozsahu 0 až 7. Pro definování barvy můžeme využít konstanty předdeklarované v jednotce CRT. Všechny znaky, které se napíšou po volání této procedury, se zobrazí v nastavené barvě.

Procedura TextColor

Zápis: TextColor (Barva:byte);

Procedura TextColor nastaví barvu popředí znaku. Parametr Barva je celé číslo z intervalu 0 až 15, které definuje barvu popředí. Každá barva se může definovat jako blikající přičtením hodnoty 128 k základní hodnotě kódu barvy. Všechny znaky, které se napíšou po volání této procedury, se zobrazí v nastavené barvě.

Procedura NormVideo

Zápis: NormVideo;

Procedura NormVideo nastavuje původní atribut zobrazení, který byl nastaven při spuštění programu.

 

Procedury k programování zvukového generátoru

Procedura Sound

Zápis: Sound (Hz:word);

Procedura Sound spustí zvukový generátor. Parametr Hz je výraz typu word, který definuje kmitočet, na kterém bude generátor pracovat. Kmitočet se udává v jednotkách hertz (Hz). Zvukový generátor pracuje, dokud se nezavolá procedura NoSound.

Procedura NoSound

Zápis: NoSound;

Procedura NoSound vypne interní zvukový generátor.

 

Ostatní procedury

Procedura Delay

Zápis: Delay (Doba:word);

Procedura Delay zastaví provádění programu na definovaný počet milisekund. Parametr Doba je výraz typu word a udává počet milisekund, o které se má provádění programu pozastavit. Definovaný časový interval se nedodrží zcela přesně, protože procedura čas zaokrouhlí na celé strojové cykly.