Практика программирования (Бейсик, Си, Паскаль)



         

Красивые окна в текстовом режиме - часть 4


{

char lu[5]={ 0x20,0xDA,0хС9,0xD6,0xD5 };

char ld[5]={ 0x20,0xC0,0xC8,0xD3,0xD4 };

char ru[5]={ 0x20,0xBF,0xBB,0xB7,0xB8 };

char rd[5]={ 0x20,0xD9,0xBC,0xBD,0xBE };

char horiz[5]=( 0x20,0xC4,0xCD,0xC4,0xCD };

char vert[5] ={ 0x20,0хВЗ,0хВА,0хВА,0хВЗ };

int rpth,rptv,attr;

rptv=co12-coll-l;

//длина вертикали

if(rptv <= 0) rptv=l;

rpth=row2-rowl;

//длина горизонтали

if{rpth <= 0) rpth=l;

//анализ на допустимость параметров окна

if(shade == 1 && coll+rptv >= 79) goto ml;

if(shade ==-1 && coll==l) goto ml;

if(shade != 0 && rowl+rpth >= 25) goto ml;

if(rowl+rpth > 25 || coll+rptv+1 > 80) goto ml;

xy_s_out(rowl,coll,lu[bord]);

//верхний левый угол

s_out_h(horiz[bord],rptv);

//верхняя горизонталь

s_out_h(ru[bord],1);

//верхний правый угол

set_cur(rowl+1,coll);

//курсор в начало левой вертикали

s_out_v(vert[bord],rpth);

//левая вертикаль

set_cur(rowl+1,co!2);

//курсор в начало правой вертикали

s_out_v(vert[bord],rpth);

//правая вертикаль

//роспись внутренности пробелами

sbox_rel(rowl+1,coll+1,rpth,rptv, 32) ;

xy__s_out(row2,coll,Idfbord]);

//левый нижний угол

s_out_h(horiz[bord],rptv);

//нижняя горизонталь

s_out_h(rd[bord],1);

//правый нижний угол

if(shade == 0) goto m;

//обход, если нет тени

attr=_ATTR;

//запоминание атрибутов цвета

set_attr(7,0,0,0);

//серый цвет для тени,

if(shade == -1)

//если тень слева

{

set_cur(rowl+1,coll-1); //установка курсора левее и ниже

s_out_v{219,rpth+1); //вертикаль тени

s_out_h(219,rptv+1); //горизонталь тени, }

else //если тень справа {

set_cur(rowl+1,col2+l); //курсор правее и ниже

s_out_v(219,rpth+1); //вертикаль тени

set_cur(row2+l,coll+1); //курсор в начало горизонтали

s_out_h(219,rptv+1); //горизонталь тени }

_ATTR=attr; //восстановление атрибутов цвета

m: set_cur (rowl+1, coll+1) ; //курсор в начало окна

return;

ml:err_out("Ошибка при вызове box... "); }

Программа bох_rе1 — построение прямоугольника с рамкой и тенью




Содержание  Назад  Вперед