18. Gestiunea ecranului in mod text
2019/XX/XX in Programare in C
Bibliotecile standard ale limbajelor C si C++ contin functii pentru gestiunea ecranului. Acesta poate fi gestionat in doua moduri:
- mod text;
- mod grafic.
In capitolul de fata sunt prezentate functiile standard mai importante utilizate in gestiunea ecranului in mod text.
In capitolul urmator se trateaza gestiunea ecranului in mod grafic.
Toate functiile standard de gestiune a ecranului in mod text au prototipurile in fisierul conio.h.
Modul text presupune ca ecranul este format dintr-un numar de linii si un numar de coloane. In mod curent, se utilizeaza 25 de linii a 80 sau 40 de coloane fiecare. Aceasta inseamna ca ecranul are o capacitate de 25*80 = 2000 sau 25*40 = 1000 de caractere.
Pozitia pe ecran a unui caracter se defineste printr-un sistem de coordonate intregi (x, y)
, unde:
x | este numarul coloanei in care este situat caracterul; |
y | este numarul liniei in care este situat caracterul. |
Coltul din stanga sus al ecranului are coordonatele (1, 1)
.
Coltul din dreapta jos al ecranului are coordonatele (80, 25)
sau (40, 25)
.
In mod implicit, functiile de gestiune a ecranului in mod text au acces la tot ecranul. Accesul poate fi limitat la o parte din ecran utilizand asa numitele ferestre. Fereastra este un dreptunghi care este o parte a ecranului si poate fi gestionata independent de restul ecranului.
Un caracter de pe ecran, pe langa coordonate, mai are si urmatoarele atribute:
- culoarea caracterului afisat;
- culoarea fondului;
- clipirea caracterului.
Aceste atribute sunt dependente de adaptorul grafic utilizat: (monocrom) MDA, Hercules sau (color) CGA, EGA, VGA.
Pentru adaptoarele color se pot utiliza 8 culori de fond si 16 pentru afisarea caracterelor.
Atributul unui caracter se defineste cu ajutorul formulei:
(1)
atribut = 16*culoare_fond + culoare_caracter + clipire
unde:
culoare_fond sau background | este o cifra din intervalul [0, 7] si are semnificatia din tabela de mai jos; |
culoare_caracter sau foreground | este o cifra din intervalul [0, 15] si are semnificatia din tabela de mai jos; |
clipire | are valoare 128 (clipirea caracterului) sau 0 (fara clipire). |
In tabelul de mai jos se indica corespondenta dintre valorile numerice si culorile definite de ele cu ajutorul relatiei (1).
Culoare | Constanta simbolica | Valoare |
---|---|---|
negru | BLACK | 0 |
albastru | BLUE | 1 |
verde | GREEN | 2 |
turcoaz | CYAN | 3 |
rosu | RED | 4 |
purpuriu | MAGENTA | 5 |
maro | BROWN | 6 |
gri deschis | LIGHTGREY | 7 |
gri inchis | DARKGREY | 8 |
albastru deschis | LIGHTBLUE | 9 |
verde deschis | LIGHTGREEN | 10 |
turcoaz deschis | LIGHTCYAN | 11 |
rosu deschis | LIGHTRED | 12 |
purpuriu deschis | LIGHTMAGENTA | 13 |
galben | YELLOW | 14 |
alb | WHITE | 15 |
clipire | BLINK | 128 |