Страница 3 из 56
Координаты
-----------------------------------------------------------------
За исключением функций задания текстового и графического ок-
на, все координаты для функций текстового и графического режима
задаются в относительных единицах (по отношению к окнам), а не в
абсолютных координатах экрана. Верхний левый угол окна при текс-
товом режиме принимается за координату (1,1), верхний левый угол
графического окна при графическом режиме - за координату (0,0).
- 19,20 -
Программирование в текстовых режимах
-----------------------------------------------------------------
В этом разделе мы даем краткое описание функций текстового
режима; более подробную информацию смотрите в главе 2 Справочного
руководства по Турбо Си.
Пакет функций Турбо Си для прямого ввода/вывода с консоли
(cprintf, cputs и т.д.) был расширен и дополнен с целью совер-
шенствования вывода текста и для обеспечения управления окнами,
курсором и атрибутами. Все эти функции являются частью стандарт-
ной библиотеки Турбо Си; они представлены прототипами в заголо-
вочном файле CONIO.H.
Функции ввода/вывода с консоли
-----------------------------------------------------------------
Функции работы с текстами выполняются в любом (из пяти воз-
можных) текстовом режиме; выбор режима зависит от типа видеоадап-
тера и монитора. Текстовый режим определяется вызовом textmode.
Использование этой функции описано далее в этой главе, а также в
разделе textmode главы 2 Справочного руководства.
Функции текстового режима представлены четырьмя отдельными
группами:
- вывода текста и манипуляции с ним;
- управления окнами и режимами;
- управления атрибутами;
- запроса состояния.
В следующих разделах мы рассматриваем эти четыре группы
функций текстового режима.
Вывод текста и манипуляция с ним
--------------------------------
- 21,22 -
Ниже представлен краткий перечень соответствующих функций:
============================================================
Запись и чтение текста:
cprintf посылает форматированный вывод на экран
cputs посылает строку на экран
putch посылает один символ на экран
getche читает символ и отображает его на экране
Манипулирование текстом (и курсором) на экране:
clrscr очищает текстовое окно
clreol очищает строку с позиции курсора
delline удаляет строку, на которой находится курсор
gotoxy устанавливает курсор
insline вставляет пустую строку под строкой, содержа-
щей курсор
movetext копирует текст с одного места экрана на другое
Пересылка блоков текста в (из) память(и):
gettext копирует блок текста с экрана в память
puttext копирует блок текста из памяти на экран.
============================================================
Программы вывода текста на экран предусматривают использова-
ние по умолчанию полноэкранных окон, так что вы можете писать,
читать и манипулировать текстом без какой-либо предварительной
установки режима. Текст пишется сразу на экран функциями консоль-
ного вывода cprintf, cputs и putch, а для отображения вводимого
символа (эхо) используется функция getche. Текст укладывается
внутрь окна следующим образом: если текст заходит за правую гра-
ницу окна, то соответствующий отрезок текста переносится на нача-
ло следующей строки.
Когда текст находится на экране, вы можете: стереть его
(т.е. очистить активное окно) - clrscr, уничтожить часть строки -
clreol, удалить строку целиком - delline, вставить пустую строку
- insline. Последние три функции действуют в соответствии с поло-
жением курсора; вы можете передвигать курсор к определенному мес-
ту при помощи функции gotoxy. Вы также можете скопировать целый
блок текста из одного прямоугольного участка окна в другой коман-
дой movetext.
Перенос прямоугольного блока текста с экрана в память вызы-
вается функцией gettext, а обратная пересылка на экран (в любое
- 23,24 -
желаемое место) выполняется функцией puttext.
Управление режимами и окнами
----------------------------
Вот две функции управления режимом и окном:
============================================================
textmode установка экрана в текстовый режим
window задание окна в текстовом режиме
============================================================
Экран может быть установлен в один из нескольких текстовых
режимов с помощью textmode (ограничения связаны только с типами
адаптера и монитора вашей системы). Эта функция устанавливает
полноэкранное текстовое окно в заданный режим и очищает его.
Когда установлен текстовый режим, вы можете работать с пол-
ным экраном или с его частью - окном, которое ограничивает прог-
раммный вывод. Окно создается вызывом функции window, определяю-
щей, какую область экрана займет окно.
- 25,26 -
Управление атрибутами
---------------------
Здесь дается краткий перечень функций, управляющих атрибута-
ми в текстовом режиме:
============================================================
Установка цвета символов и цвета фона:
textcolor устанавливает цвет текста (атрибут)
textbackground устанавливает цвет фона (атрибут)
textattr устанавливает цвет символа и цвет фона (атри-
буты) одновременно.
Изменение интенсивности:
highvideo устанавливает повышенную интенсивность текста
lowvideo устанавливает пониженную интенсивность текста
normvideo устанавливает нормальную интенсивность текста
============================================================
Функции управления атрибутами устанавливают текущий атрибут,
который задается 8-битным значением: четыре младших бита управля-