Jednotka Crt

Dneska si pořádně odpočineme a budeme si hrát!

Jednotka Crt nám umožňuje vyrobit různé textové a zvukové efekty.

Pro ty, kteří používají FreePascal: obsah této jednotky je zahrnut už v jednotce System.
Pro Delphisty: všechny jednotky popsané v této a dalších lekcích můžete vynechat, Delphi je nemá, zato má jiné, lepší.

Jednotka Crt měla tu nevýhodu, že nefungovala na počítačích s procesory rychlejšími jak 200MHz. Na Internetu je k dispozici řada opravných opatření. Stáhli-li jste tedy BP, nejspíše se s tímto problémem již nesetkáte. Jinak musíte najít opravnou jednotku (např. Crtp2), či patch, který umožní fungovat i již přeloženým souborům.

Souřadnice se u obrazovky počítají zleva doprava a seshora dolů.

Procedury a funkce

ClrScr; - Procedura smaže obrazovku
GotoXY(X,Y:Byte); Přesune textový kurzor na zadané souřadnice (obrazovka má 80 x 25 znaků)
WhereX:Byte x-ová souřadnice kurzoru
WhereY:Byte y-ová souřadnice kurzoru

Delay(ms:word); Počká ms milisekund
Sound(Hz); začne vydávat zvuk o frekvenci Hz (lze použít i k zahrání jednoduchých skladeb : komorní A má 440Hz a tón o oktávu vyšší pak frekvenci dvojnásobnou)
NoSound; Ukončí vydávání zvuku (jediný způsob, jak se zbavit pištění Soundu, používá se nejčastěji ve spojení : Sound(FrekvenceDanéNoty), Delay(DobaTrváníNoty); Nosound

ReadKey:char Přečte jeden znak z klávesnice. Používá se nejčastěji v cyklech, kde se neustále dokola testuje, zda nebyla stisknuta některá klávesa (nemusí totiž čekat na stisk Entru jako Readln)
KeyPressed : Boolean Funkce zjišťuje, stiskl-li uživatel něco (nějakou klávesu, že tiskl jazyk za zuby nás vůbec, ale opravdu vůbec nezajímá)

Jednotka Crt nám umožňuje pracovat i s barvami. K tomu se musí barvy ovšem nějak definovat a abychom se nezbláznili ze změti čísel, zavedli se konstanty:

Název konstantyHodnota
Black 0
Blue 1
Green 2
Cyan 3
Red 4
Magenta 5
Brown 6
LightGray 7
DarkGray 8
LightBlue 9
LightGreen 10
LightCyan 11
LightRed 12
LightMagenta 13
Yellow 14
White 15
Blink 128

Jak číslo 4, tak i Red tedy znamenají červenou barvu, ale kvůli přehlednosti je lepší používat druhou možnost zápisu. Uveďme si nyní pár "barevných" funkcí:
TextColor(Barva); Změní barvu textu na zadanou hodnotu
TextBackground(Barva); Změní barvu pozadí (samozřejmě, že ne vašeho). U této procedury se používá pouze tmavých barev.

Uvedené procedury se nevztahují na již napsané znaky (ClrScr je výjimka)

To by bylo z Crt vše.

DCV: Projděte své dosavadní programy a pokuste se některé vylepšit pomocí zde získaných zkušeností. (Vylepšení se asi budou týkat grafické stránky, ale pokud využijete i ReadKey a KeyPressed, nebude to na škodu)