Jednotka Crt
[Pro jistotu: není potřeba umět ani ke zkoušce ani k průběžné písemce. Spíš
to pro někoho může být užitečná informace.]
Jednotka Crt je skupina konstant, proměnných, procedur a funkcí (příkazů)
rozšiřujících možnosti práce s klávesnicí, obrazovkou v textovém módu a
zvukem. Pokud chceme v programu některé z těchto procedur a funkcí použít,
musíme na začátku programu (před deklaracemi proměnných, definicemi konstant
atd.) uvést
uses Crt;
Všechny procedury a funkce s jejich podrobným popisem i příklady lze najít v
helpu, například po napsání Crt a zmáčknutí Ctrl+F1.
Některé z proměnných, procedur a funkcí jednotky Crt:
TextBackground(Barva: Byte) změna barvy pozadí,
hodnoty 0-7, případně předdefinované konstanty (viz dále)
TextColor(Barva: Byte) změna barvy textu, hodnoty
0-15, případně předdefinované konstanty (viz dále)
ClrScr smaže obrazovku (celá bude mít barvu pozadí)
TextAttr: Byte proměnná, která určuje barvu
vypisovaného textu, jeho pozadí a případné blikání. Nejvyšší bit je blikání,
další tři bity jsou barva pozadí a spodní čtyři bity jsou barva textu. Barvy
lze vidět například v menu Options->Environment->Colors
Změna barvy popředí či pozadí (ať už ji provedeme jakýmkoli způsobem) se
uplatní na dalšími příkazy vypisovaný text, nikoli tedy například na text
již vypsaný. Pochopitelně platí jen do další případné změny.
WhereX: Byte funkce vracející souřadnici aktuální
polohy kurzoru na vodorovné ose
WhereY: Byte funkce vracející souřadnici aktuální
polohy kurzoru na svislé ose
GotoXY(X, Y: Byte) přesune kurzor na danou pozici
na obrazovce, levý horní roh obrazovky má souřadnice (1, 1), pravý dolní
zpravidla (80, 25)
Delay(milisec: Word) zastaví vykonávání programu
na zadaný počet milisekund
KeyPressed: Boolean řekne, jestli je možné načíst
nějaký vstup z klávesnice, jestli byla zmáčknuta nějaká klávesa, ale nic
nenačte.
ReadKey: Char načte znak z klávesnice, pokud je
KeyPressed = true, jinak čeká na stisk klávesy, znak nevypisuje na
obrazovku a vrátí odpovídající znak, v případě stisku speciálních kláves
(šipky, funkční klávesy, kombinace Alt+klávesa a podobně) je vrácen znak #0
a další ReadKey vrátí tzv. scancode klávesy či kombinace kláves.
Asi je vhodné upozornit, že v bufferu klávesnice může být více
nezpracovaných stisků kláves, po ReadKey tedy může být
KeyPressed stále true. Následujícím prográmkem lze
zjistit, která klávesa má jaký scancode:
uses Crt;
var c, d : char;
begin
writeln('Zmackni q, az te to prestane bavit.');
repeat
c := readkey;
if c = #0 then begin
d := readkey;
writeln (ord(c), ',', ord(d));
end
else
writeln (ord(c));
until c = 'q'
end.
Konstanty odpovídající jednotlivým barvám:
0 = Black 8 = DarkGray
1 = Blue 9 = LightBlue
2 = Green 10 = LightGreen
3 = Cyan 11 = LightCyan
4 = Red 12 = LightRed
5 = Magenta 13 = LightMagenta
6 = Brown 14 = Yellow
7 = LightGray 15 = White