Moduł Crt, Informatyka, Informatyka semestr II, 3.Programowanie strukturalne i obiektowe


Crt - obsługa monitora, klawiatury i głośnika;

MODUŁ Crt

Stałe

Black - kolor czarny;
Blink - "miganie";
Blue - kolor niebieski;
Brown - kolor brązowy;
BW40 - tryb czterdziesto kolumnowy czarno biały;
BW80 - tryb osiemdziesięcio kolumnowy czarno biały;
C40 - tryb czterdziesto kolumnowy kolorowy;
C80 - tryb osiemdziesięcio kolumnowy kolorowy;
CO40 - 40 columns color screen mode;
CO80 - 80 columns color screen mode;
Cyan - kolor cyjan;
DarkGray - kolor ciemno szary;
Font8x8 - wewnętrzny 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 biały;
Yellow - kolor żółty.

Procedury i funkcje

AssignCrt - dołącz plik do CRT;
ClrEol - czyści całą 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óźnia wykonywanie programu;
DelLine - usuwa linię w której znajduje się kursor;
GotoXY - przemieszcza kursor w określone miejsce na ekranie;
HighVideo - przełącza w tryb podświetlania;
InsLine - wstawia pustą linię w miejscu pozycji kursora;
KeyPressed - sprawdza czy klawisz jest naciśnięty;
LowVideo - przełącza w tryb małej intensywności kolorów;
NormVideo - powraca do normalnego modus;
NoSound - wyłącza dźwięk;
ReadKey - czyta jeden znak;
Sound - dźwięk systemowy;
TextBackground - ustawia kolor tła;
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 moduł zawierający procedury i funkcje służące do kontroli trybu tekstowego ekranu.

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:

view plaincopy to clipboardprint?

  1. uses Crt;  

  2.   

  3. begin  

  4.     WriteLn('Tego napisu nie zobaczysz');  

  5.     ClrScr;    //Czyścimy ekran więc po uruchomieniu tekstu powyżej nie zobaczysz...  

  6.     ReadLn;  

  7. end.  

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:

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.  

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:

view plaincopy to clipboardprint?

  1. uses  

  2.     Crt;  

  3.   

  4. begin  

  5.     GoToXY(30, 10);  

  6.     WriteLn('Tekst na środku');  

  7.     Readkey;  

  8. end.  

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:

view plaincopy to clipboardprint?

  1. uses  

  2.     Crt;  

  3.   

  4. begin  

  5.     Sound(1500);  

  6.     Delay(2000);  

  7.     NoSound;  

  8. end.  

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:

view plaincopy to clipboardprint?

  1. uses  

  2.     Crt;  

  3.   

  4. begin  

  5.     repeat  

  6.         WriteLn('Nacisnij dowolny klawisz aby zakończyć');  

  7.         Delay(100);  

  8.     until KeyPressed;  

  9. end.  

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:

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.  

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.

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 80x
50
                         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 końca 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 tworząca 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 ko
mend:

    * 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ą całkowitą kontrolę nad możliwościami komputera.

Procedury i funkcje unitu CRT pozwalają na kontrolę trybów ekranu, rozszerzonymi kodami klawiatury, kolorami, oknami i dźwiękami.

Unit CRT może być wykorzystywany jedynie w programach działających na komputerach w pełni kompatybilnych z IBM PC, AT.

Procedury i funkcje unitu CRT

procedura

wyświetla plik tekstowy na ekranie.

procedura

Czyści wszystkie znaki od miejsca, w którym znajduje się kursor do końca linii.

procedura

Czyści ekran i wyświetla kursor w lewym górnym rogu.

procedura

powoduje opóźnienie o podaną liczbę milisekund.

procedura

usuwa linię, w której znajduje się kursor.

procedura

przesuwa kursor do podanej pozycji na ekranie.

procedura

ustawia znaki wysokiej intensywności.

procedura

wstawia pustą linię w wierszu, w którym znajdował się kursor.

funkcja

sprawdza czy został naciśnięty jakiś klawisz.

procedura

ustawia znaki niskiej intensywności.

procedura

ustawia domyślny tryb wyświetlania znaków na ekranie

procedura

wyłącza dźwięk ze speakera.

funkcja

pobiera znak z klawiatury.

procedura

uruchamia dźwięk ze speakera.

procedura

ustawia kolor tła pod tekstem.

procedura

ustawia kolor tekstu.

procedura

ustawia wybrany tryb wyświetlania tekstu.

funkcja

zwraca współrzędną X położenia kursora.

funkcja

zwraca współrzędną Y położenia kursora.

procedura

tworzy na ekranie okno w trybie tekstowym.

Zmienne unitu CRT

(Boolean)

(Boolean)

(Boolean)

(Boolean)

(Word)

(Byte)

(Word)

(Word)

0x01 graphic

AssignCrt (procedura) - unit WinCrt

^

Wyświetla plik tekstowy na ekranie.

Deklaracja:
AssignCrt (var f: Text);

Uwagi:
Procedura AssignCrt działa podobnie jak standardowa procedura Assign, jednakże nie przypisuje się nazwy konkretnego pliku. W zamian, plik tekstowy jest skojarzony z ekranem.
Rozwiązanie 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).

0x01 graphic
przykład

0x01 graphic

ClrEol (procedura) - unit Crt i WinCrt

^

Czyści wszystkie znaki od miejsca, w którym znajduje się kursor do końca linii, nie przesuwając przy tym kursora.

Deklaracja:
ClrEol

Uwagi:
Wszystkie znaki do końca danej linii ustawiane są jako niewidoczne przy wykorzystaniu aktualnie ustalonych atrybutów tekstu. Tak więc, jeśli tło (TextBackground) nie jest zdefiniowane jako czarne, wszystkie znaki od miejsca, w którym znajdował się kursor, do prawej krawędzi ekranu zmienią kolor na kolor tła.

Procedura ClrEol jest zależna od aktywnego okna. Poniższe linie programu definiują okno i czyszczą linię, w której znajdował się kursor od pozycji (1,1) do prawej krawędzi aktywnego okna (1,60).

Window (1,1,60,20);

ClrEol;

0x01 graphic
przykład

0x01 graphic

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 więc jeśli tło (TextBackground) nie jest zdefiniowane jako czarne, cały ekran stanie się koloru tła. Dotyczy to także znaków wyczyszczonych przez ClrEol, InsLine, i DelLine, i pustych linii powstałych w wyniku przesuwania ekranu.

Procedura ClrScr jest zależna od aktywnego okna. Poniższe linie programu definiują okno i czyszczą prostokąt o wymiarach 60x20.

Window (1,1,60,20);

ClrScr;

0x01 graphic
przykład

0x01 graphic

Delay (procedura) - unit Crt

^

Powoduje opóźnienie o podaną liczbę milisekund

Deklaracja:
Delay (liczba_milisekund: Word);

Uwagi:
liczba_milisekund to liczba określająca o ile milisekund ma opóźnić się wykonywanie programu.

Procedura Delay jest przybliżeniem, więc przerwa w programie nie będzie trwać dokładnie tyle ile podano w parametrze liczba_milisekund.

0x01 graphic
przykład

0x01 graphic

DelLine (procedura) - unit Crt

^

Usuwa linię w której znajduje się kursor.

Deklaracja:
DelLine

Uwagi:
Linia, w której znajdował się kursor zostaje usunięta, a wszystkie linie pod nią zostają przesunięte o jedną pozycję do góry (używając standardowej procedury BIOS'u). Na dole dodawana jest nowa linia.

Wszystkie znaki ustawiane są zgodnie z aktualnymi atrybutami tekstu. Tak więc jeśli tło (TextBackground) nie jest ustawione jako czarne, nowa linia będzie jego koloru.

Zobacz także:
InsLine
Window

0x01 graphic
przykład

0x01 graphic

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ółrzędne (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.

0x01 graphic
przykład

0x01 graphic

HighVideo (procedura) - unit Crt

^

Ustawia znaki wysokiej intensywności. (?)

Deklaracja:
HighVideo;

Uwagi:
W CRT TextAttr jest zmienna o wielkości jednego bajta przechowująca 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

0x01 graphic
przykład

0x01 graphic

InsLine (procedura) - unit Crt

^

Wstawia pustą linię w wierszu, w którym znajdował się kursor.

Deklaracja:
InsLine;

Uwagi:
Wszystkie linie poniżej wstawianej przesuwane są o jedną linię w dół (używając standardowej procedury BIOS'u), a ostatni wiersz wychodzi poza ekran.

Wszystkie znaki ustawiane są zgodnie z obecnymi atrybutami tekstu. Tak więc jeśli tło (TextBackground) nie jest ustawione jako czarne, nowa linia będzie jego koloru.

Zobacz także:
DelLine
Window

0x01 graphic
przykład

0x01 graphic

KeyPressed (funkcja) - unit Crt i WinCrt

^

Sprawdza czy został naciśnięty jakiś klawisz.

Deklaracja:
KeyPressed: Boolean

Uwagi:
To jaki klawisz został naciśnięty można sprawdzić przy użyciu funkcji ReadKey.

Zwracana wartość:
TRUE (prawda) jeśli klawisz został naciśnięty, FALSE (fałsz) jeśli nie.

0x01 graphic
przykład

0x01 graphic

LowVideo (procedura) - unit Crt

^

Ustawia znaki niskiej intensywności. (?)

Deklaracja:
LowVideo;

Uwagi:
W CRT TextAttr jest zmienna o wielkości jednego bajta przechowująca 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

0x01 graphic
przykład

0x01 graphic

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 początku działania programu (zmienna TextAttr przechowuje aktualne właściwości wyświetlania tekstu).

Zobacz także:
HighVideo
LowVideo
TextBackground
TextColor

0x01 graphic
przykład

0x01 graphic

NoSound (procedura) - unit Crt

^

Wyłącza dźwięk ze speakera.

Deklaracja
NoSound;

Uwagi:
Poniższe linie programu powodują włączenie dźwięku o częstotliwości 440 herców na pół sekundy:

Sound(440);

Delay(500);

NoSound;

Zobacz także:
Sound

0x01 graphic
przykład

0x01 graphic

ReadKey (funkcja) - unit Crt

^

Pobiera znak z klawiatury.

Deklaracja:
Readkey: Char;

Uwagi:
Wciśnięty klawisz nie jest wyświetlany na ekran.

Zwracana wartość:
Funkcja ReadKey przechowuje znak wciśniętego klawisza, lub kod rozszerzony.

0x01 graphic
przykład

0x01 graphic

Sound (procedura) - unit Crt

^

Uruchamia dżwięk ze speakera.

Deklaracja:
Sound (Hz: Word);

Uwagi:
Zmienna Hz jest częstotliwością mającego się wydobyć ze speakera dźwięku. Dźwięk będzie brzmiał nieprzerwanie dopóki nie zostanie wyłączony przez procedurę (NoSound).

Zobacz także:
NoSound

0x01 graphic
przykład

0x01 graphic

TextBackground (procedura) - unit CRT

^

Ustawia kolor tła.

Deklaracja:
TextBackground (Color: Byte);

Uwagi:
Zmienna Color jest wyrażeniem całkowitym z przedziału 0..7, zawierającym pierwsze osiem kolorów tekstu. Procedura TextBackground zmienia 4-6 bit zmiennej TextAttr na wybrany kolor.

Tło wszystkich wyświetlanych po wywołaniu procedury znaków będzie wybranego wcześniej koloru.

Zobacz także:
HighVideo
LowVideo
NormVideo
TextColor

0x01 graphic
przykład

0x01 graphic

TextColor (procedura) - unit CRT

^

Ustawia kolor tekstu.

Deklaracja:
TextColor (Color: Byte);

Uwagi:
Zmienna Color jest wyrażeniem całkowitym z przedziału 0..15, zawierającym jeden z kolorów tekstu.

Procedura TextColor zmienia 0-3 bit zmiennej TextAttr na wybrany kolor. Jeśli wartość zmiennej kolor jest większa 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 będą mrugać (migotać) dodając 128 do wartości zmiennej color. Stała migotania tekstu jest zdefiniowana dla zasady, i w gruncie rzeczy już od wersji Pascal'a 3.0 wystarczy wpisać jakąkolwiek większą licbę niż 15 jako zmienną color by włączyć migotanie tekstu. Kolor wszystkich znaków wyświetlanych po użyciu procedury TextColor będzie wybranego wcześniej koloru.

Zobacz także:
HighVideo
LowVideo
NormVideo
TextBackground

0x01 graphic
przykład

0x01 graphic

TextMode (procedura) - unit CRT

^

Ustawia wybrany tryb wyświetlania tekstu.

Deklraracja:
TextMode (Mode: Integer);

Uwagi:
Gdy wywoływana jest procedura TextMode, obecne okno rozciągane jest na cały ekran, zmienna CRT - DirectVideo jest ustawiana na wartość TRUE (prawda), zmienna CRT CheckSnow jest ustawiana na wartość TRUE (prawda) i jeśli wybrany był kolor tła, czy tekstu zostaje on zapisany w zmiennej LastMode, a ekranowi przywraca się wygląd oryginalny, podobnie jak działaniem procedury NormVideo.
Zmienna LastMode jest inicjalizowana domyślnie za każdym razem, gdy zaczyna działać program.

Wywołanie 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 skończeniu pracy w trybie graficznym.

Wywołanie procedury TextMode z następującym 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 wyłącza tryb 43- lub 50- wierszowy i przywraca poprzedni tryb wyświetlania (chyba że nie zmienia trybu wyświetlania); dzieje się to wtedy, gdy wywoła się procedurę z parametrem TextMode (Lo(LastMode)+font8x8);. Takie wywołanie 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 przechowująca największą dozwoloną liczbę wierszy na ekranie (WindMax) zostanie zainicjalizowana poprawnie.

Oto jak w programie wykorzystać procedurę TextMode, by przywrócić tryb wyświetlania do jego początkowego stanu:

PROGRAM Video;

uses Crt;

var OrigMode: Integer;

BEGIN

OrigMode:=LastMode; _{ Zapamiętuje początkowy tryb }

...

TextMode (OrigMode);

END.

0x01 graphic
przykład

0x01 graphic

WhereX (funkcja) - unit CRT i WinCRT

^

Zwraca współrzędną X położenia kursora.

Deklaracja:
WhereX: Byte

Zwracana wartość:
Jedna współrzędna odpowiadająca pozycji X kursora + 1

0x01 graphic
przykład

0x01 graphic

WhereY (funkcja) - unit CRT i WinCRT

^

Zwraca współrzędną Y położenia kursora.

Deklaracja:
WhereX: Byte

Zwracana wartość:
Jedna współrzędna odpowiadająca pozycji X kursora + 1

Zobacz również:
GotoXY
WhereX

0x01 graphic
przykład

0x01 graphic

Window (procedura) - unit CRT

^

Tworzy na ekranie okno w trybie tekstowym.

Deklaracja:
Window (X1, Y1, X2, Y2: Byte);

X1 i X2 są współrzędnymi lewego górnego rogu nowego okna, a X2 i Y2 to współrzędne prawego dolnego rogu. Lewy górny róg nowego okna ma współrzędne (1,1). Najmniejsze możliwe okno może mieć wymiary 1 kolumna - 1 wiersz. Jeśli podane współrzędne są w jakiś sposób błędne, odwołanie do procedury Window Będzie pominięte.

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 całego ekranu.

Wszystkie współrzędne ekranu (poza współrzędnymi tworzącymi okno) są zależne od aktywnego okna. Na przykład, GotoXY zawsze umieści kursor z lewym górnym rogu aktywnego okna.

Wiele procedur z unit CRT jest zależnych od aktywnego okna, włączając w to ClrEol, ClrScr, DelLine, GotoXY, InsLine, WhereX, WhereY, Read, ReadLn, Write, WriteLn.

Zmienne WindMin i WindMax przechowują atrybuty obecnego okna. Po wywołaniu procedury Window kursor umieszczany jest zawsze w pozycji (1,1).

Zobacz także:
ClrEol
ClrScr
DelLine
GotoXY
WhereX
WhereY

0x01 graphic
przykład

0x01 graphic

CheckBereak (zmienna) - unit Crt i WinCrt

^

Sprawdza zakończenie programu przez użytkownika przy pomocy okna CRT (?).

CheckBreak: Boolean = True;

Kiedy CheckBreak przyjmuje wartość PRAWDA (true), użytkownik może zakończyć aplikację w dowolnym momencie: wybierając opcję zamknij w menu programu dwukrotnie klikając na ikonie zamknij naciskając Alt-F4 naciskając Ctrl-Break

Użytkownik może również nacisnąć Ctrl-C lub Ctrl-Break w dowolnym momencie, by zatrzymać działanie aplikacji i powrócić do okna CRT (?).

Wszystkie te możliwości są wyłączone gdy CheckBreak ma wartość FAŁSZ (false).

Przy uruchamianiu CRT przechowuje poprzednią wartość CheckBreak w wektorze przerwania $1B w globalnym wskaźniku zwanym SaveInt1B.

0x01 graphic

CheckEOF (zmienna) - unit Crt i WinCrt

^

Sprawdza pozycję znacznika końca 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 końca pliku.

Kiedy CheckEOF ma wartość FAŁSZ (false), naciśnięcie Ctrl-Z nie przyniesie rezultatu.

CheckEOF domyślnie ma wartość FAŁSZ (false).

0x01 graphic

CheckSnow (zmienna) - unit Crt

^

Włącza i wyłącza Snow-Checking gdy znaki przechowywane są bezpośrednio w pamięci wideo.

Gdy wybrano kolorowy tryb wyświetlania tekstu, CheckSnow ma wartość PRAWDA (true), a bezpośrednie zapisy z pamięci wideo będą pojawiać się jedynie w trakcie poziomego odświeżania.

Jeśli program działa na nowszych kartach CGA, można ustawić CheckSnow na FAŁSZ (false) już w trakcie uruchamiania programu, po każdym odwołaniu się do procedury TextMode.

Wyłączy to Snow-Checking powodując widoczne przyspieszenie działania programu.

CheckSnow nie działa, gdy zmienna DirectVideo jest ustawiona jako FAŁSZ (false).

0x01 graphic

DirectVideo (zmienna) - unit Crt

^

Włącza i wyłącza bezpośredni dostęp do pamięci dla poleceń Write i WriteLn.

Gdy DirectVideo ma wartość PRAWDA (true), znaki wyświetlane przy pomocy poleceń Write i WriteLn są przechowywane w pamięci wideo i stamtąd przekazywane na ekran, zamiast używania do tego celu poleceń BIOS.

Gdy DirectVideo ma wartość FAŁSZ (false), wszystkie znaki wyświetlane są przy pomocy odwołań do BIOS'u, co znacznie zwalnia szybkość procesu.

Domyślnie DirectVideo ma wartość PRAWDA (true).

Jeśli chcesz by wyświetlanie znaków przebiegało przy pomocy odwołań do BIOS'u, ustaw wartość DirectVideo na FAŁSZ (false) na początku programu i po każdorazowym wywołaniu procedury TextMode.

0x01 graphic

LastMode (zmienna) - unit Crt

^

Za każdym razem gdy wywoływana jest procedura TextMode, obecne atrybuty wyświetlania przechowywane są w zmiennej LastMode

Zmienna LastMode jest inicjalizowana przy rozpoczęciu programu.

0x01 graphic

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ć odwołując się bezpośrednio do zmiennej TextAttr.

0x01 graphic

WindMax i WindMin (zmienne) - unit Crt

^

Przechowują współrzędne 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ółrzędna X przechowywana jest w młodszym bajcie, Y w starszym.

Na przykład funkcja Lo(WindMin) zwraca współrzędną X lewej krawędzi, a funkcja Hi(WindMax) zwraca współrzędną Y dolnej krawędzi.

Lewy górny róg ekranu ma współrzędne (0,0).

Uwaga:
W przypadku procedury GotoXY lewy górny róg ma współrzędne (1,1).

0x01 graphic

pomoc Turbo Pascal'a



Wyszukiwarka

Podobne podstrony:
Programowanie opracowanie, Informatyka, Informatyka semestr II, 3.Programowanie strukturalne i obiek
Zaliczeniówka z 29 Maja 2010r, Informatyka, Informatyka semestr IV, 2.Prograowanie strukturalne i ob
Zmienne tablicowe, INFORMATYKA, INFORMATYKA sem. III, 2.Prograowanie strukturalne i obiektowe
Systemy obliczania w praktyce, INFORMATYKA, INFORMATYKA sem. III, 2.Prograowanie strukturalne i obie
Zmienne Tablicowe w teoretyce, INFORMATYKA, INFORMATYKA sem. III, 2.Prograowanie strukturalne i obie
Przykładowa praca kontrolna, INFORMATYKA, INFORMATYKA sem. III, 2.Prograowanie strukturalne i obiekt
pascal 1, szkoła-informatyka-cosinus, cosinus, Programowanie strukturalne i obiektowe
Ada95, UŁ Sieci komputerowe i przetwarzanie danych, Semestr II, Programowanie strukturalne
Typy danych i ich klasyfikacja, INFORMATYKA, Programowanie strukturalne i obiektowe, Semestr 1
Egzamin pisemny z programowania, INFORMATYKA, Programowanie strukturalne i obiektowe, Semestr 1
Cw2008, Studia Informatyka PK, Semestr II, Algorytmy i struktury danych
Programowanie strukturalne i obiektowe Podrecznik do nauki zawodu technik informatyk Wydanie II popr
Programowanie strukturalne i obiektowe Podrecznik do nauki zawodu technik informatyk Wydanie II popr

więcej podobnych podstron