plik


ÿþFunkcje ModuB Crt do TP Funkcje ModuB Crt do TP Crt - obsBuga monitora, klawiatury i gBo[nika StaBe Black - kolor czarny; Blink - "miganie"; Blue - kolor niebieski; Brown - kolor brzowy; BW40 - tryb czterdziesto kolumnowy czarno biaBy; BW80 - tryb osiemdziesicio kolumnowy czarno biaBy; C40 - tryb czterdziesto kolumnowy kolorowy; C80 - tryb osiemdziesicio kolumnowy kolorowy; CO40 - 40 columns color screen mode; CO80 - 80 columns color screen mode; Cyan - kolor cyjan; DarkGray - kolor ciemno szary; Font8x8 - wewntrzny tryb czcionki ROM; Green - kolor zielony; LightBlue - kolor jasno niebieski; LightCyan - kolor jasny cyjan; LightGray - kolor jasny szary; LightGreen - kolor jasno zielony; LightMagenta - kolor jasny magenta; LightRed - kolor jasno czerwony; Magenta - kolor magenta; Mono - tryb monochromatyczny; Red - kolor czerwony; ScreenHeight - aktualna wysoko[ ekranu; ScreenWidth - aktualna szeroko[ ekranu; White - kolor biaBy; Yellow - kolor |óBty. Procedury i funkcje AssignCrt - doBcz plik do CRT; ClrEol - czy[ci caB lini od miejsca w którym znajduje si kursor; ClrScr - czy[ci ekran; cursorbig - pokazuje du|y kursor; cursoroff - ukrywa kursor; cursoron - wy[wietla kursor; Delay - opóznia wykonywanie programu; DelLine - usuwa lini w której znajduje si kursor; GotoXY - przemieszcza kursor w okre[lone miejsce na ekranie; HighVideo - przeBcza w tryb pod[wietlania; InsLine - wstawia pust lini w miejscu pozycji kursora; KeyPressed - sprawdza czy klawisz jest naci[nity; LowVideo - przeBcza w tryb maBej intensywno[ci kolorów; NormVideo - powraca do normalnego modus; NoSound - wyBcza dzwik; ReadKey - czyta jeden znak; Sound - dzwik systemowy; TextBackground - ustawia kolor tBa; TextColor - ustawia kolor tekstu; TextMode - ustawia tryb ekranu; WhereX - zwraca pozycj X kursora; WhereY - zwraca pozycj Y kursora; Window - tworzy nowe okno na ekranie. Crt to moduB zawierajcy procedury i funkcje sBu|ce do kontroli trybu tekstowego ekranu. StaBe StaBe kolorów 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 Tryby pracy ekranu w DOS: Identyfikator Warto[ Opis 40 kolumnowy, bw40 0 czarnobiaBy 40 kolumnowy, co40 1 kolorowy 80 kolumnowy, bw80 2 czarnobiaBy 80 kolumnowy, co80 3 kolorowy mono 7 Monochromatyczny Inne: Identyfikator Warto[ Opis Domy[lna ScreenWidth 80 szeroko[ ekranu Domy[lna ScreenHeight 25 wysoko[ ekranu Zmienne CheckBreak : boolean; Sprawdzanie kombinacji clrl + break. W FPC nie u|ywane. CheckEOF : boolean; Sposób reakcji programu na kombinacj klawiszy CTRL + Z. W FPC nie u|ywane. CheckSnow : boolean; Usuwanie efektu  [nie|enia . W FPC ne u|ywane. DirectVideo : boolean; Je[li true to wyj[cie programu jest obsBugiwane przez pami karty graficznej, w przeciwnym wypadku do tego celu wykorzystywane s przerwania BIOS u. LastMode : byte = 3; Ostatnio u|ywany tryb pracy ekranu. TextAttr : byte = $07; Zmienna TextAttr kontroluje atrybuty koloru, które s u|ywane przy zapisie znaków na ekran. WindMax : word = $184f; Zmienna przechowujca w starszym bajcie wspóBrzdn Y, a w mBodszym wspóBrzdn X, prawego dolnego rogu okna utworzonego przez procedur Window. WindMaxX : DWord; WspóBrzdna X prawego dolnego rogu okna utworzonego przez procedur Window. WindMaxY : DWord; WspóBrzdna Y prawego dolnego rogu okna utworzonego przez procedur Windows. WindMin : word = $0; Zmienna przechowujca w starszym bajcie wspóBrzdn Y, a w mBodszym wspóBrzdn X, lewego górnego rogu okna utworzonego przez procedur Window. WindMinX : word; WspóBrzdna X lewego górnego rogu okna utworzonego przez procedur Window. WindMinY : word; WspóBrzdna Y lewego górnego rogu okna utworzonego przez procedur Window. Procedury AssignCrt Deklaracja: procedure AssignCrt(var F : Text); Opis: Przypisuje do konsoli plik F. Zapis danych do pliku F zostaje przekierowany do okienka konsoli. Je[li konsola zawiera okno, wszystko zostanie zapisane w oknie. ClrEol Deklaracja: procedure ClrEol; Opis: ClrEol czy[ci bie|cy wiersz poczynajc od pozycji kursora a| do koDca okna. Kursor nie zmienia swojej pozycji. Procedura zamazuje (czy[ci) aktualnie aktywne okno u|ywajc koluru ustawionego procedur TextBackground (je[li wcze[niej nie u|yto, okno zastanie zamazane kolorem czarnym), od pozycji kursora a| do prawego, dolnego rogu. Kursor nie zmienia pozycji. ClrScr Deklaracja: procedure ClrScr; Opis: Procedura zamazuje (czy[ci) aktualnie aktywne okno u|ywajc koloru ustawionego procedur TextBackground (je[li wcze[niej nie u|yto, okno zostanie zamazane kolorem czarnym) oraz ustawia kursor w lewym, górnym rogu okna. PrzykBad: view plaincopy to clipboardprint? 1. uses Crt; 2. 3. begin 4. WriteLn('Tego napisu nie zobaczysz'); 5. ClrScr; //Czy[cimy ekran wic po uruchomieniu tekstu powy|ej nie zobaczysz... 6. ReadLn; 7. end. CursorBig (tylko FPC) Deklaracja: procedure CursorBig; Opis: Tworzy kursor o ksztaBcie du|ego prostokta. Nie zaimplementowane w wersji Linux. CursorOff (tylko FPC) Deklaracja: procedure CursorOff; Opis: WyBcza widok kursora. W wersji Linux nie zaimplementowane. CursorOn (tylko FPC) Deklaracja: procedure CursorOn; Opis: WBcza widok kursora. W wersji Linux nie zaimplementowane. Delay Deklaracja: procedure Delay(MS : word); Opis: Procedura wstrzymuje wykonanie programu na MS milisekund. PrzykBad: view plaincopy to clipboardprint? 1. uses Crt; 2. 3. var 4. i : byte; 5. begin 6. for i:=10 downto 1 do 7. begin 8. ClrScr; 9. GoToXY(30, 11); 10. WriteLn('Auto destrukcja za: ', i, 's'); 11. Delay(1000); //Wstrzymanie na sekund wykonanie programu 12. end; 13. TextBackground(red); 14. ClrScr; 15. GoToXY(35, 11); 16. WriteLn('BOOM!!!'); 17. Readln 18. end. DelLine Deklaracja: procedure DelLine; Opis: DelLine usuwa bie|cy wiersz. Wiersze le|ce poni|ej zostaj przemieszczone w gór o 1 wiersz, a na spodzie bie|cego okna zostaje wstawiony pusty wiersz znaków. Kursor nie zmienia pozycji. GoToXY Deklaracja: procedure GoToXY(X : byte; Y : byte); Opis: Procedura ustawia kursor tekstowy w pozycji X, Y wzgldem lewego, górnego rogu okna (1, 1). PrzykBad: view plaincopy to clipboardprint? 1. uses 2. Crt; 3. 4. begin 5. GoToXY(30, 10); 6. WriteLn('Tekst na [rodku'); 7. Readkey; 8. end. HighVideo Deklaracja: procedure HighVideo Opis: HighVideo przeBcza wy[wietlanie znaków w tryb podwy|szonej jasno[ci ustawiajc bit wysokiej intensywno[ci koloru w atrybucie wideo. InsLine Deklaracja: procedure InsLine; Opis: InsLine wstawia pusty wiersz na bie|cej pozycji kursora. Wiersze le|ce poni|ej zostaj opuszczone o jedn linijk w dóB. co powoduje zniknicie ostatniego wiersza z okna. Kursor nie zmienia poBo|enia. LowVideo Deklaracja: procedure LowVideo; Opis: LowVideo przeBcza wyj[cie tekstu do koloru w normalnej intensywno[ci zerujc bit intensywno[ci w atrybucie koloru wideo. NormVideo Deklaracja: procedure NormVideo; Opis: NormVideo przeBcza na standardowe kolory, odczytane przy starcie z pozycji kursora. NoSound Deklaracja: procedure NoSound; Opis: Procedura przerywa generowanie dzwiku wywoBane procedur Sound. Sound Deklaracja: procedure Sound(Hz : word); Opis: Procedura generuje dzwik o okre[lonej przez parametr Hz czstotliwo[ci, z gBo[niczka pByty gBównej (PC Speaker). Dzwik bdzie odgrywany a| do momentu wywoBania procedury NoSound. Czsto stosowany w poBczeniu z procedur Delay. W systemach innych ni| Windows procedur mo|e nie dziaBa. PrzykBad: view plaincopy to clipboardprint? 1. uses 2. Crt; 3. 4. begin 5. Sound(1500); 6. Delay(2000); 7. NoSound; 8. end. TextBackground Deklaracja: procedure TextBackground(cl : byte); Opis: Ustawia kolor cl tBa tekstu. cl to warto[ z zakresu od 0..7. TextColor Deklaracja: procedure TextColor(cl : byte); Opis: Ustawia kolor cl tekstu. cl to warto[ z zakresu od 0..15. TextMode Deklaracja: procedure TextMode(Mode : word); Opis: Procedura ustawia tryb pracy ekranu DOS. Window Deklaracja: procedure Window(X1 : byte; Y1 : byte; X2: byte; Y2 : byte); Opis: Window tworzy okno tekstowe na ekranie konsoli, do którego bdzie przesyBany tekst. WspóBrzdne (X1,Y1) okre[laj lewy górny naro|nik tego okna, a (X2,Y2) prawy dolny. WspóBrzdne te odnosz si do ekranu, którego lewy górny naro|nik znajduje si na pozycji (1,1). Dalsze operacje zwizane ze wspóBrzdnymi, za wyjtkiem kolejnego wywoBania procedury Window, s wzgldem lewego górnego naro|nika tego okna. Funkcje KeyPressed Deklaracja: function KeyPressed : boolean; Opis: Funkcja sprawdza czy bufor klawiatury nie jest pusty. Je[li tak funkcja zwraca true w przeciwnym wypadku false. Ignorowane s klawisze: Shift, Alt oraz Ctrl. Funkcja nie usuwa kodu klawisza z bufora klawiatury. PrzykBad: view plaincopy to clipboardprint? 1. uses 2. Crt; 3. 4. begin 5. repeat 6. WriteLn('Nacisnij dowolny klawisz aby zakoDczy'); 7. Delay(100); 8. until KeyPressed; 9. end. ReadKey Deklaracja: function ReadKey : Char; Opis: Funkcja zwraca kod , z bufora klawiatury, wci[nitego klawisza. W przypadku gdy bufor jest pusty, funkcja czeka na wci[nicie klawisza. Dla klawiszy funkcyjnych i sterujcych funkcja zwraca #0, ponowne u|ycie ReadKey w tym wypadku zwróci wBa[ciwy kod klawisza. PrzykBad: view plaincopy to clipboardprint? 1. uses 2. Crt; 3. 4. var 5. Odp : char = #0; 6. 7. begin 8. 9. repeat 10. Odp := ReadKey; 11. WriteLn('Kod ASCI klawsza ', Odp, ': '); 12. WriteLn(ord(Odp)); 13. if Odp = #0 then 14. begin 15. Odp := ReadKey; 16. WriteLn(ord(Odp)); 17. end; 18. until Odp = #27; 19. end. WhereX Deklaracja: function WhereX : Byte; Opis: Funkcja zwraca wspóBrzdn X pozycji kursora wzgldem lewego, górnego rogu aktywnego okna. WhereY Deklaracja: function WhereY : Byte; Opis: Funkcja zwraca wspóBrzdn Y pozycji kursora wzgldem lewego, górnego rogu aktywnego okna. 2) CRT 2.1 TextMode(x) zmieniamy styl naszego okna i rozmiaru czcionki. W pole x mo|emy poda 4 warto[ci: CO80 - rozmiar 80x25 standardowy dos CO40 - rozmiar 40x25 CO80 +font8x8 - rozmiar 80x50 CO40 +font8x8 - rozmiar 40x50 2.2 KeyPressed funkcja sprawdza aktywno[ klawiatury. 2.3 ClrEol procedura wymazuje znaki od miesca w którym znajduj si kursor do koDca linii. 2.4 InsLine procedura wstawia pust lini w miejsce kursora. 2.5 DelLine procedura usuwa lini w miejscu, w którym znajduj si kursor. 2.6 WhereX funkcja pozycja kursora w osi X. 2.7 WhereY funkcja pozycja kursora w osi Y. 2.8 Window(x,y,xx,yy) procedura tworzca nowe okno, gdzie: x(0-80), y(0-25) - lewo górny róg okna xx(0-80), yy(0-25) - prawo dolny róg okna 2.9 GoToXY(x,y) procedura ustawia kursor na pozycji (x,y) A teraz spójrz jak korzysta z powy|szych komend: * stosowanie komend crt. Program program_30; uses crt; var i, j :integer; BEGIN clrscr; window(20,5,60,6); { 1 } readln; window(1,1,80,25); { wracamy do standardowego okna 80x25 } GoToXY(15,6); writeln('Pozycja kursora X=',WhereX,' Y=',WhereY); clrscr; for i:=1 to 80 do for j:=1 to 24 do write('*'); { 2 } GoToXY(33,9); ClrEol; readkey; InsLine; readkey; DelLine; readkey; TextMode(CO80 +font8x8); { 3 } readln; repeat until KeyPressed; END. Unit CRT Unit CRT (Crt.tpu albo Crt.tpp) dostarcza wiele najcz[ciej u|ywanych procedur i funkcji, które daj caBkowit kontrol nad mo|liwo[ciami komputera. Procedury i funkcje unitu CRT pozwalaj na kontrol trybów ekranu, rozszerzonymi kodami klawiatury, kolorami, oknami i dzwikami. Unit CRT mo|e by wykorzystywany jedynie w programach dziaBajcych na komputerach w peBni kompatybilnych z IBM PC, AT. Procedury i funkcje unitu CRT AssignCrt procedura wy[wietla plik tekstowy na ekranie. Czy[ci wszystkie znaki od miejsca, w ClrEol procedura którym znajduje si kursor do koDca linii. Czy[ci ekran i wy[wietla kursor w ClrScr procedura lewym górnym rogu. powoduje opóznienie o podan liczb Delay procedura milisekund. DelLine procedura usuwa lini, w której znajduje si kursor. przesuwa kursor do podanej pozycji na GotoXY procedura ekranie. HighVideo procedura ustawia znaki wysokiej intensywno[ci. wstawia pust lini w wierszu, w InsLine procedura którym znajdowaB si kursor. sprawdza czy zostaB naci[nity jaki[ KeyPressed funkcja klawisz. LowVideo procedura ustawia znaki niskiej intensywno[ci. ustawia domy[lny tryb wy[wietlania NormVideo procedura znaków na ekranie NoSound procedura wyBcza dzwik ze speakera. ReadKey funkcja pobiera znak z klawiatury. Sound procedura uruchamia dzwik ze speakera. TextBackground procedura ustawia kolor tBa pod tekstem. TextColor procedura ustawia kolor tekstu. ustawia wybrany tryb wy[wietlania TextMode procedura tekstu. zwraca wspóBrzdn X poBo|enia WhereX funkcja kursora. zwraca wspóBrzdn Y poBo|enia WhereY funkcja kursora. tworzy na ekranie okno w trybie Window procedura tekstowym. Zmienne unitu CRT CheckBreak: (Boolean) CheckEOF: (Boolean) CheckSnow: (Boolean) DirectVideo: (Boolean) LastMode: (Word) TextAttr: (Byte) WindMax: (Word) WindMin: (Word) AssignCrt (procedura) - unit WinCrt ^ Wy[wietla plik tekstowy na ekranie. Deklaracja: AssignCrt (var f: Text); Uwagi: Procedura AssignCrt dziaBa podobnie jak standardowa procedura Assign, jednak|e nie przypisuje si nazwy konkretnego pliku. W zamian, plik tekstowy jest skojarzony z ekranem. Rozwizanie takie pozwala na szybsze dokonywanie operacji wyj[cia (i wej[cia) ni| jest to mo|liwe gdy u|ywane s standardowe instrukcje wyj[cia (i wej[cia). przykBad ClrEol (procedura) - unit Crt i WinCrt ^ Czy[ci wszystkie znaki od miejsca, w którym znajduje si kursor do koDca linii, nie przesuwajc przy tym kursora. Deklaracja: ClrEol Uwagi: Wszystkie znaki do koDca danej linii ustawiane s jako niewidoczne przy wykorzystaniu aktualnie ustalonych atrybutów tekstu. Tak wic, je[li tBo (TextBackground) nie jest zdefiniowane jako czarne, wszystkie znaki od miejsca, w którym znajdowaB si kursor, do prawej krawdzi ekranu zmieni kolor na kolor tBa. Procedura ClrEol jest zale|na od aktywnego okna. Poni|sze linie programu definiuj okno i czyszcz lini, w której znajdowaB si kursor od pozycji (1,1) do prawej krawdzi aktywnego okna (1,60). Window (1,1,60,20); ClrEol; przykBad ClrScr (procedura) - unit Crt i WinCrt ^ Czy[ci ekran i wy[wietla kursor w lewym górnym rogu. Deklaracja: ClrScr Uwagi: Wszystkie znaki ustawiane s jako niewidoczne przy wykorzystaniu aktualnie ustalonych atrybutów tekstu. Tak wic je[li tBo (TextBackground) nie jest zdefiniowane jako czarne, caBy ekran stanie si koloru tBa. Dotyczy to tak|e znaków wyczyszczonych przez ClrEol, InsLine, i DelLine, i pustych linii powstaBych w wyniku przesuwania ekranu. Procedura ClrScr jest zale|na od aktywnego okna. Poni|sze linie programu definiuj okno i czyszcz prostokt o wymiarach 60x20. Window (1,1,60,20); ClrScr; przykBad Delay (procedura) - unit Crt ^ Powoduje opóznienie o podan liczb milisekund Deklaracja: Delay (liczba_milisekund: Word); Uwagi: liczba_milisekund to liczba okre[lajca o ile milisekund ma opózni si wykonywanie programu. Procedura Delay jest przybli|eniem, wic przerwa w programie nie bdzie trwa dokBadnie tyle ile podano w parametrze liczba_milisekund. przykBad DelLine (procedura) - unit Crt ^ Usuwa lini w której znajduje si kursor. Deklaracja: DelLine Uwagi: Linia, w której znajdowaB si kursor zostaje usunita, a wszystkie linie pod ni zostaj przesunite o jedn pozycj do góry (u|ywajc standardowej procedury BIOS'u). Na dole dodawana jest nowa linia. Wszystkie znaki ustawiane s zgodnie z aktualnymi atrybutami tekstu. Tak wic je[li tBo (TextBackground) nie jest ustawione jako czarne, nowa linia bdzie jego koloru. Zobacz tak|e: InsLine Window przykBad GotoXY (procedura) - unit Crt i WinCrt ^ Przesuwa kursor do podanej pozycji na ekranie. Deklaracja: GotoXY (X,Y:Byte); Uwagi: Górny lewy róg ekranu ma wspóBrzdne (1,1). Gdy projektujesz nowe aplikacje mo|esz zamiast GotoXY u|y CursorTo. Procedura GotoXY jest zgodna z unitem CRT Turbo Pascal'a dla DOS'a. przykBad HighVideo (procedura) - unit Crt ^ Ustawia znaki wysokiej intensywno[ci. (?) Deklaracja: HighVideo; Uwagi: W CRT TextAttr jest zmienna o wielko[ci jednego bajta przechowujca obecne ustawienia wideo. Procedura HighVideo ustawia bit intensywno[ci obrazu w zmiennej TextAttr - kolor znaków, czyli przemienia kolory z 0-7 na kolory 8-15. Zobacz tak|e: LowVideo NormVideo TextBackground TextColor przykBad InsLine (procedura) - unit Crt ^ Wstawia pust lini w wierszu, w którym znajdowaB si kursor. Deklaracja: InsLine; Uwagi: Wszystkie linie poni|ej wstawianej przesuwane s o jedn lini w dóB (u|ywajc standardowej procedury BIOS u), a ostatni wiersz wychodzi poza ekran. Wszystkie znaki ustawiane s zgodnie z obecnymi atrybutami tekstu. Tak wic je[li tBo (TextBackground) nie jest ustawione jako czarne, nowa linia bdzie jego koloru. Zobacz tak|e: DelLine Window przykBad KeyPressed (funkcja) - unit Crt i WinCrt ^ Sprawdza czy zostaB naci[nity jaki[ klawisz. Deklaracja: KeyPressed: Boolean Uwagi: To jaki klawisz zostaB naci[nity mo|na sprawdzi przy u|yciu funkcji ReadKey. Zwracana warto[: TRUE (prawda) je[li klawisz zostaB naci[nity, FALSE (faBsz) je[li nie. przykBad LowVideo (procedura) - unit Crt ^ Ustawia znaki niskiej intensywno[ci. (?) Deklaracja: LowVideo; Uwagi: W CRT TextAttr jest zmienna o wielko[ci jednego bajta przechowujca obecne ustawienia wideo. Procedura LowVideo ustawia bit intensywno[ci obrazu w zmiennej TextAttr - kolor znaków, czyli przemienia kolory z 8-15 na kolory 0-7. Zobacz tak|e: HighVideo NormVideo TextBackground TextColor przykBad NormVideo (procedura) - unit Crt ^ Ustawia domy[lny tryb wy[wietlania znaków na ekranie. Deklaracja: NormVideo; Uwagi: Procedura NormVideo przywraca zmiennej TextAttr jej warto[ z pocztku dziaBania programu (zmienna TextAttr przechowuje aktualne wBa[ciwo[ci wy[wietlania tekstu). Zobacz tak|e: HighVideo LowVideo TextBackground TextColor przykBad NoSound (procedura) - unit Crt ^ WyBcza dzwik ze speakera. Deklaracja NoSound; Uwagi: Poni|sze linie programu powoduj wBczenie dzwiku o czstotliwo[ci 440 herców na póB sekundy: Sound(440); Delay(500); NoSound; Zobacz tak|e: Sound przykBad ReadKey (funkcja) - unit Crt ^ Pobiera znak z klawiatury. Deklaracja: Readkey: Char; Uwagi: Wci[nity klawisz nie jest wy[wietlany na ekran. Zwracana warto[: Funkcja ReadKey przechowuje znak wci[nitego klawisza, lub kod rozszerzony. przykBad Sound (procedura) - unit Crt ^ Uruchamia d|wik ze speakera. Deklaracja: Sound (Hz: Word); Uwagi: Zmienna Hz jest czstotliwo[ci majcego si wydoby ze speakera dzwiku. Dzwik bdzie brzmiaB nieprzerwanie dopóki nie zostanie wyBczony przez procedur (NoSound). Zobacz tak|e: NoSound przykBad TextBackground (procedura) - unit CRT ^ Ustawia kolor tBa. Deklaracja: TextBackground (Color: Byte); Uwagi: Zmienna Color jest wyra|eniem caBkowitym z przedziaBu 0..7, zawierajcym pierwsze osiem kolorów tekstu. Procedura TextBackground zmienia 4-6 bit zmiennej TextAttr na wybrany kolor. TBo wszystkich wy[wietlanych po wywoBaniu procedury znaków bdzie wybranego wcze[niej koloru. Zobacz tak|e: HighVideo LowVideo NormVideo TextColor przykBad TextColor (procedura) - unit CRT ^ Ustawia kolor tekstu. Deklaracja: TextColor (Color: Byte); Uwagi: Zmienna Color jest wyra|eniem caBkowitym z przedziaBu 0..15, zawierajcym jeden z kolorów tekstu. Procedura TextColor zmienia 0-3 bit zmiennej TextAttr na wybrany kolor. Je[li warto[ zmiennej kolor jest wiksza ni| 15 wtedy równie| bit migotania tekstu (7 bit zmiennej TextAttr) zostaje zmieniony, w przeciwnym wypadku zostaje ustawiony na warto[ 0. Mo|esz spowodowa, |e znaki na ekranie bd mruga (migota) dodajc 128 do warto[ci zmiennej color. StaBa migotania tekstu jest zdefiniowana dla zasady, i w gruncie rzeczy ju| od wersji Pascal'a 3.0 wystarczy wpisa jakkolwiek wiksz licb ni| 15 jako zmienn color by wBczy migotanie tekstu. Kolor wszystkich znaków wy[wietlanych po u|yciu procedury TextColor bdzie wybranego wcze[niej koloru. Zobacz tak|e: HighVideo LowVideo NormVideo TextBackground przykBad TextMode (procedura) - unit CRT ^ Ustawia wybrany tryb wy[wietlania tekstu. Deklraracja: TextMode (Mode: Integer); Uwagi: Gdy wywoBywana jest procedura TextMode, obecne okno rozcigane jest na caBy ekran, zmienna CRT - DirectVideo jest ustawiana na warto[ TRUE (prawda), zmienna CRT CheckSnow jest ustawiana na warto[ TRUE (prawda) i je[li wybrany byB kolor tBa, czy tekstu zostaje on zapisany w zmiennej LastMode, a ekranowi przywraca si wygld oryginalny, podobnie jak dziaBaniem procedury NormVideo. Zmienna LastMode jest inicjalizowana domy[lnie za ka|dym razem, gdy zaczyna dziaBa program. WywoBanie procedury TextMode z parametrem LastMode (Textmode (LastMode);) powoduje powrót do wcze[niej aktywnego trybu wy[wietlania. Opcja ta jest szczególnie przydatna, gdy trzeba powróci do trybu testowego po skoDczeniu pracy w trybie graficznym. WywoBanie procedury TextMode z nastpujcym parametrem: TextMode (C80+Font8x8); spowoduje przej[cie do trybu wy[wietlania tekstu w 43 wierszach i 80 kolumnach dla kart EGA albo 50 liniach i 80 kolumnach dla kart VGA z kolorowym monitorem. TextMode (Lo(LastMode)) zawsze wyBcza tryb 43- lub 50- wierszowy i przywraca poprzedni tryb wy[wietlania (chyba |e nie zmienia trybu wy[wietlania); dzieje si to wtedy, gdy wywoBa si procedur z parametrem TextMode (Lo(LastMode)+font8x8);. Takie wywoBanie pozostawia bez zmian tryb wy[wietlania tekstu a zmienia jedynie ilo[ wierszy na 43 lub 50. Je[li w momencie uruchamiania programu, twój monitor pracuje ju| w trybie 43- lub 50- wierszowym, tryb ten zostanie zachowany przez "CRT code", a zmienna przechowujca najwiksz dozwolon liczb wierszy na ekranie (WindMax) zostanie zainicjalizowana poprawnie. Oto jak w programie wykorzysta procedur TextMode, by przywróci tryb wy[wietlania do jego pocztkowego stanu: PROGRAM Video; uses Crt; var OrigMode: Integer; BEGIN OrigMode:=LastMode; _{ Zapamituje pocztkowy tryb } ... TextMode (OrigMode); END. przykBad WhereX (funkcja) - unit CRT i WinCRT ^ Zwraca wspóBrzdn X poBo|enia kursora. Deklaracja: WhereX: Byte Zwracana warto[: Jedna wspóBrzdna odpowiadajca pozycji X kursora + 1 przykBad WhereY (funkcja) - unit CRT i WinCRT ^ Zwraca wspóBrzdn Y poBo|enia kursora. Deklaracja: WhereX: Byte Zwracana warto[: Jedna wspóBrzdna odpowiadajca pozycji X kursora + 1 Zobacz równie|: GotoXY WhereX przykBad Window (procedura) - unit CRT ^ Tworzy na ekranie okno w trybie tekstowym. Deklaracja: Window (X1, Y1, X2, Y2: Byte); X1 i X2 s wspóBrzdnymi lewego górnego rogu nowego okna, a X2 i Y2 to wspóBrzdne prawego dolnego rogu. Lewy górny róg nowego okna ma wspóBrzdne (1,1). Najmniejsze mo|liwe okno mo|e mie wymiary 1 kolumna - 1 wiersz. Je[li podane wspóBrzdne s w jaki[ sposób bBdne, odwoBanie do procedury Window Bdzie pominite. Domy[lnie okno ma wymiary (1,1,80,25) dla trybu 25- wierszowego i (1,1,80,43) dla trybu 43- wierszowego, co odpowiada wielko[ci caBego ekranu. Wszystkie wspóBrzdne ekranu (poza wspóBrzdnymi tworzcymi okno) s zale|ne od aktywnego okna. Na przykBad, GotoXY zawsze umie[ci kursor z lewym górnym rogu aktywnego okna. Wiele procedur z unit CRT jest zale|nych od aktywnego okna, wBczajc w to ClrEol, ClrScr, DelLine, GotoXY, InsLine, WhereX, WhereY, Read, ReadLn, Write, WriteLn. Zmienne WindMin i WindMax przechowuj atrybuty obecnego okna. Po wywoBaniu procedury Window kursor umieszczany jest zawsze w pozycji (1,1). Zobacz tak|e: ClrEol ClrScr DelLine GotoXY WhereX WhereY przykBad CheckBereak (zmienna) - unit Crt i WinCrt ^ Sprawdza zakoDczenie programu przez u|ytkownika przy pomocy okna CRT (?). CheckBreak: Boolean = True; Kiedy CheckBreak przyjmuje warto[ PRAWDA (true), u|ytkownik mo|e zakoDczy aplikacj w dowolnym momencie: wybierajc opcj zamknij w menu programu dwukrotnie klikajc na ikonie zamknij naciskajc Alt-F4 naciskajc Ctrl-Break U|ytkownik mo|e równie| nacisn Ctrl-C lub Ctrl-Break w dowolnym momencie, by zatrzyma dziaBanie aplikacji i powróci do okna CRT (?). Wszystkie te mo|liwo[ci s wyBczone gdy CheckBreak ma warto[ FAASZ (false). Przy uruchamianiu CRT przechowuje poprzedni warto[ CheckBreak w wektorze przerwania $1B w globalnym wskazniku zwanym SaveInt1B. CheckEOF (zmienna) - unit Crt i WinCrt ^ Sprawdza pozycj znacznika koDca pliku. CheckEOF: Boolean = False; Je[li CheckEOF ma warto[ PRWADA (true), to gdy u|ytkownik zamknie plik wy[wietlany na ekranie kombinacj klawiszy Ctrl-Z, zostanie wygenerowany znacznik koDca pliku. Kiedy CheckEOF ma warto[ FAASZ (false), naci[nicie Ctrl-Z nie przyniesie rezultatu. CheckEOF domy[lnie ma warto[ FAASZ (false). CheckSnow (zmienna) - unit Crt ^ WBcza i wyBcza Snow-Checking gdy znaki przechowywane s bezpo[rednio w pamici wideo. Gdy wybrano kolorowy tryb wy[wietlania tekstu, CheckSnow ma warto[ PRAWDA (true), a bezpo[rednie zapisy z pamici wideo bd pojawia si jedynie w trakcie poziomego od[wie|ania. Je[li program dziaBa na nowszych kartach CGA, mo|na ustawi CheckSnow na FAASZ (false) ju| w trakcie uruchamiania programu, po ka|dym odwoBaniu si do procedury TextMode. WyBczy to Snow-Checking powodujc widoczne przyspieszenie dziaBania programu. CheckSnow nie dziaBa, gdy zmienna DirectVideo jest ustawiona jako FAASZ (false). DirectVideo (zmienna) - unit Crt ^ WBcza i wyBcza bezpo[redni dostp do pamici dla poleceD Write i WriteLn. Gdy DirectVideo ma warto[ PRAWDA (true), znaki wy[wietlane przy pomocy poleceD Write i WriteLn s przechowywane w pamici wideo i stamtd przekazywane na ekran, zamiast u|ywania do tego celu poleceD BIOS. Gdy DirectVideo ma warto[ FAASZ (false), wszystkie znaki wy[wietlane s przy pomocy odwoBaD do BIOS'u, co znacznie zwalnia szybko[ procesu. Domy[lnie DirectVideo ma warto[ PRAWDA (true). Je[li chcesz by wy[wietlanie znaków przebiegaBo przy pomocy odwoBaD do BIOS'u, ustaw warto[ DirectVideo na FAASZ (false) na pocztku programu i po ka|dorazowym wywoBaniu procedury TextMode. LastMode (zmienna) - unit Crt ^ Za ka|dym razem gdy wywoBywana jest procedura TextMode, obecne atrybuty wy[wietlania przechowywane s w zmiennej LastMode Zmienna LastMode jest inicjalizowana przy rozpoczciu programu. TextAttr (zmienna) - unit Crt ^ Przechowuje aktualnie wybrane atrybuty wy[wietlania tekstu. Atrybuty wy[wietlania tekstu ustawia si poprzez procedury TextColor i TextBackground Atrybuty te mo|na jednak zmienia odwoBujc si bezpo[rednio do zmiennej TextAttr. WindMax i WindMin (zmienne) - unit Crt ^ Przechowuj wspóBrzdne aktywnego okna. Zmienne te ustawiane s przez procedur Window WindMin okre[la lewy górny róg okna, WindMax okre[la lewy dolny róg okna. WspóBrzdna X przechowywana jest w mBodszym bajcie, Y w starszym. Na przykBad funkcja Lo(WindMin) zwraca wspóBrzdn X lewej krawdzi, a funkcja Hi(WindMax) zwraca wspóBrzdn Y dolnej krawdzi. Lewy górny róg ekranu ma wspóBrzdne (0,0). Uwaga: W przypadku procedury GotoXY lewy górny róg ma wspóBrzdne (1,1). pomoc Turbo Pascal'a

Wyszukiwarka