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



         

Красивые окна в текстовом режиме


В ЭТОМ разделе мы познакомим вас с небольшим пакетом программ на Си, разработанным одним из авторов этой книги 1990 г., когда большинство программистов были вынуждены изобретать разные средства для управления выводом данных из-за их отсутствия в среде MS-DOS. Аналогичные пакеты с меньшими функциональными возможностями вы можете найти в книгах Р. Уинера "Язык Турбо Си" и В. В. Фаронова "Программирование на персональных ЭВМ в среде Турбо Паскаль".

Пакет с условным названием ТЕХТ_ВОХ предназначен для оформления различных окон на экране дисплея и управления выводом текстовых данных в таких окнах. В его состав входит 21 функция для манипуляции со строками и текстовыми окнами, которые реализованы на базе подфункций прерывания BIOS с номером 0х10. Их список приведен в табл. 10.2. Прерывание Oxio обслуживает видеосистему не только в текстовых, но и в графических режимах, и представленные здесь возможности раскрывают примерно четверть этого арсенала.

Таблица 10.2. Функции манипуляции

Формат вызова функции

Назначение

ask attr (&cs, &cf, sin, sbl)

Опрос цветовых атрибутов

set attr (cs, cf , in, bl)

Установка цветовых атрибутов

ask_cur (&x, &y)

Опрос позиции курсора

set_ cur(x,y)

Установка курсора в заданную позицию

move_cur(n)

Перемещение курсора на n позиций

box_abs (rowl, coll, row2, col2, bord, shade)

Оформление окна

box rel (rowl, coll, rows, cols, bord, shade)

Оформление окна

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

Очистка окна

s_out (ch)

Вывод символа в текущую позицию

s_out h (ch, n)

Вывод n символов по горизонтали

s_out v(ch,n)

Вывод n символов по вертикали

s_box abs (rowl, coll, row2, col2,ch)

Заполнение окна символом

s_box rel (rowl, coll, rows, cols, ch)

Заполнение окна символом

s_out_с (row, col, nc, str) Вывод строки по центру
s_ out_1 (row, col, nc, str) Вывод строки с прижимом влево
s_out_ r (row, col, nc, str ) Вывод строки с прижимом вправо
ask_page ( ) Опрос активной страницы
set_page (n) Установка активной страницы
out_err (str) init_txt ( ) Вывод сообщения об ошибке Инициализация текстового режима

xy_s_out (row, col, ch)

Вывод символа в заданную позицию

<


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