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



         

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


Эта программа отличается от предыдущей только способом задания габаритов рамки — вместо второго противоположного угла здесь задается количество строк (rows) и столбцов (cols). Программа определяет координаты противоположного угла и обращается к предыдущей функции.

void box__rel(int rowl,int coll,int rows,int cols,int bord,int shade)

// rows,cols - число строк и столбцов

{

box_abs(rowl,coll,rowl+rows-1,col1+cols-l,bord,shade);

}

Программа cl_rect — очистка прямоугольной области экрана

void cl_rect(int row,int col,int rows,int cols,int color)

// row, col - левый верхний угол,

// rows, cols - число строк и столбцов,

// color - цвет заливки, от 0 до 7

//( RED=4 GREEN=2 BLUE=1 )

{

AL=rows+l; //количество строк

АН=0х06; //номер подфункции

CH=row-l; //номер начальной строки

CL=col-l; //номер начального столбца

DH=row+rows-2; //номер конечной строки

DL=col+cols—2; //номер конечного столбца

ВН=со1ог*1б; //дает фона

INT10h;

set_cur(row,col); //перевод курсора в начало окна }

Программа s_out — вывод символа в текущую позицию

void s_out(char s) {

АН=9; //подфункция вывода символа

AL=s; //код выводимого символа

ВН= PAGE; //номер активной страницы

BL=_ATTR; //текущие цветовые атрибуты

СХ=1; //количество повторяемых символов

INT10h;

move_cur(1); //сдвиг курсора на 1 позицию вправо }

Программа s_out_h — размножение символа с текущей позиции по строке

Функция отличается от предыдущей только установкой счетчика повторений символа. После размножения символа курсор переводится в ближайшую свободную позицию справа.

void s_out_h(char s,int rpt)

// s - размножаемый символ

// rpt - количество повторений {

АН=9; //номер подфункции

AL=s ;

BH=_PAGE ;

BL=_ATTR;

CX=rpt;

INT10h;

move_cur(rpt); }

Программа s_out_v — размножение символа с текущей позиции по столбцу

В цикле организуется перемещение курсора по вертикали вниз и вывод размножаемого символа. По окончании цикла курсор переводится за последний символ.




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