Crt

Wszystkie cytowane tu opisy zostały zaczerpnięte z Serwisu Edukacyjnego I LO w Tarnowie zgodnie z zasadami GNU Free Documentation License.

Crt to moduł zawierający procedury i funkcje służące do kontroli trybu tekstowego ekranu.

Autorem pierwszej wersji dla DOS jest Florian Klämpfl. Moduł został przeniesiony do systemu Linux przez Marka Maya i rozbudowany przez Michaëla Van Canneyta i Petera Vremana. Działa on w konsoli Linuxa xterm i rxvt pod systemem X-Windows. Oba moduły działają identycznie, z wyjątkiem tego, iż pod Linuxem we wczesnej implementacji (wersje kompilatora 0.9.1 i wcześniejsze) moduł CRT oraz w oknach automatycznie czyścił treść okna konsoli przy starcie programu.

Stałe

Stałe 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
bw40 0 40 kolumnowy, czarnobiały
co40 1 40 kolumnowy, kolorowy
bw80 2 80 kolumnowy, czarnobiały
co80 3 80 kolumnowy, kolorowy
mono 7 Monochromatyczny

Inne:

Identyfikator Wartość Opis
ScreenWidth 80 Domyślna szerokość ekranu
ScreenHeight 25 Domyślna 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 obsługiwane 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 przechowująca w starszym bajcie współrzędną Y, a w młodszym współrzędną X, prawego dolnego rogu okna utworzonego przez procedurę Window.

WindMaxX : DWord;

Współrzędna X prawego dolnego rogu okna utworzonego przez procedurę Window.

WindMaxY : DWord;

Współrzędna Y prawego dolnego rogu okna utworzonego przez procedurę Windows.

WindMin : word = $0;

Zmienna przechowująca w starszym bajcie współrzędną Y, a w młodszym współrzędną X, lewego górnego rogu okna utworzonego przez procedurę Window.

WindMinX : word;

Współrzędna X lewego górnego rogu okna utworzonego przez procedurę Window.

WindMinY : word;

Współrzędna 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 poczynając od pozycji kursora aż do końca okna. Kursor nie zmienia swojej pozycji.

Procedura zamazuje (czyści) aktualnie aktywne okno używając 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żywając 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.

Przykład:


uses Crt;

begin
    WriteLn('Tego napisu nie zobaczysz');
    ClrScr;    //Czyścimy ekran więc po uruchomieniu tekstu powyżej nie zobaczysz...
    ReadLn;
end.

CursorBig (tylko FPC)

Deklaracja:
procedure CursorBig;

Opis:

Tworzy kursor o kształcie dużego prostokąta. Nie zaimplementowane w wersji Linux.

CursorOff (tylko FPC)

Deklaracja:
procedure CursorOff;

Opis:

Wyłącza widok kursora. W wersji Linux nie zaimplementowane.

CursorOn (tylko FPC)

Deklaracja:
procedure CursorOn;

Opis:

Włącza widok kursora. W wersji Linux nie zaimplementowane.

Delay

Deklaracja:
procedure Delay(MS : word);

Opis:
Procedura wstrzymuje wykonanie programu na MS milisekund.

Przykład:


uses Crt;

var
  i : byte;
begin
  for i:=10 downto 1 do
   begin
     ClrScr;
     GoToXY(30, 11);
     WriteLn('Auto destrukcja za: ', i, 's');
     Delay(1000); //Wstrzymanie na sekundę wykonanie programu
   end;
  TextBackground(red);
  ClrScr;
  GoToXY(35, 11);
  WriteLn('BOOM!!!');
  Readln
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 względem lewego, górnego rogu okna (1, 1).

Przykład:

uses
	Crt;

begin
	GoToXY(30, 10);
	WriteLn('Tekst na środku');
	Readkey;
end.

HighVideo

Deklaracja:
procedure HighVideo

Opis:

HighVideo przełącza wyświetlanie znaków w tryb podwyższonej jasności ustawiając 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ół. co powoduje zniknięcie ostatniego wiersza z okna. Kursor nie zmienia położenia.

LowVideo

Deklaracja:
procedure LowVideo;

Opis:

LowVideo przełącza wyjście tekstu do koloru w normalnej intensywności zerując bit intensywności w atrybucie koloru wideo.

NormVideo

Deklaracja:
procedure NormVideo;

Opis:

NormVideo przełącza na standardowe kolory, odczytane przy starcie z pozycji kursora.

NoSound

Deklaracja:
procedure NoSound;

Opis:
Procedura przerywa generowanie dźwięku wywołane procedurą Sound.

Sound

Deklaracja:
procedure Sound(Hz : word);

Opis:
Procedura generuje dźwięk o określonej przez parametr Hz częstotliwości, z głośniczka płyty głównej (PC Speaker). Dźwięk będzie odgrywany aż do momentu wywołania procedury NoSound. Często stosowany w połączeniu z procedurą Delay. W systemach innych niż Windows procedurą może nie działać.

Przykład:

uses
	Crt;

begin
	Sound(1500);
	Delay(2000);
	NoSound;
end.

TextBackground

Deklaracja:
procedure TextBackground(cl : byte);

Opis:
Ustawia kolor cl tła 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 będzie przesyłany tekst. Współrzędne (X1,Y1) określają lewy górny narożnik tego okna, a (X2,Y2) prawy dolny. Współrzędne te odnoszą się do ekranu, którego lewy górny narożnik znajduje się na pozycji (1,1). Dalsze operacje związane ze współrzędnymi, za wyjątkiem kolejnego wywołania procedury Window, są względem 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.

Przykład:

uses
    Crt;

begin
    repeat
        WriteLn('Nacisnij dowolny klawisz aby zakończyć');
        Delay(100);
    until KeyPressed;
end.

ReadKey

Deklaracja:
function ReadKey : Char;

Opis:
Funkcja zwraca kod , z bufora klawiatury, wciśniętego klawisza. W przypadku gdy bufor jest pusty, funkcja czeka na wciśnięcie klawisza. Dla klawiszy funkcyjnych i sterujących funkcja zwraca #0, ponowne użycie ReadKey w tym wypadku zwróci właściwy kod klawisza.

Przykład:

uses
	Crt;

var
	Odp : char = #0;	

begin

	repeat
		Odp := ReadKey;
		WriteLn('Kod ASCI klawsza ', Odp, ': ');
		WriteLn(ord(Odp));
		if Odp = #0 then
			begin
				Odp := ReadKey;
				WriteLn(ord(Odp));
			end;
	until Odp = #27;
end.

WhereX

Deklaracja:
function WhereX : Byte;

Opis:
Funkcja zwraca współrzędną X pozycji kursora względem lewego, górnego rogu aktywnego okna.

WhereY

Deklaracja:
function WhereY : Byte;

Opis:
Funkcja zwraca współrzędną Y pozycji kursora względem lewego, górnego rogu aktywnego okna.


0 Odpowiedzi do “Crt”


  1. Brak komentarzy

Napisz odpowiedź