Графические устройства

         

Вывод информационных строк

В процессе выполнения графических программ на экран могут выводиться информационные строки, которые делятся на две основные категории.

К первой категории относятся напоминания о назначении различных значков, находящихся на экране, не требующие конкретной реакции оператора. Например, одно из подобных сообщений, выдаваемых Windows 9X, выглядит так:

"Начните работу с нажатия этой кнопки".

Обычно такие строки через некоторое время удаляются с экрана.

К другой категории относятся подсказки, требующие от оператора выполнения конкретных действий, например ввода числовых величин, спецификаций файлов и т. п. Такие строки остаются на экране до тех пор, пока оператор не выполнит требуемое действие.

В данном разделе мы рассмотрим общую схему вывода информационных строк, а в следующих — программирование ввода текста в ответ на подсказку оператору. При изложении материала нас будет интересовать вывод отдельных строк, а не больших объемов текста, именно поэтому в заголовке раздела использовано выражение "информационная строка". При работе с текстами большего объема применяются совершенно другие приемы.



Расположение и адрес строки

Прежде чем выводить символ, надо решить, в каком месте экрана он будет располагаться, и определить, какому участку видеопамяти соответствует это место. Способы указания координат точек и вычисления их адресов при работе в графических видеорежимах описаны в разделе. Здесь мы рассмотрим конкретные примеры.

Где бы ни располагалась информационная строка для работы, надо знать адрес ее начала в видеопамяти и соответствующее ему окно. При построении изображения символа знакогенератор выводит точки на экран в том порядке, в котором их коды хранятся в таблице, а именно слева направо и сверху вниз. Поэтому для вывода текста надо знать адрес верхнего левого угла первого символа информационной строки. Для его хранения в разделе данных программы надо описать две следующие переменные:

Inflino dw 0; для хранения адреса начала информационной строки
Inflinw dw 0; для хранения окна, к которому относится этот адрес

Если информационная строка расположена в начале рабочей области экрана, то надо просто очистить указанные переменные при их описании.

Если расположение строки связано с расположением курсора на экране, например, курсор указывает на значок, назначение которого надо пояснить, то в описанные переменные просто копируется текущий, или несколько измененный, адрес изображения курсора. Текущие координаты курсора и адрес его изображения на экране нужны во многих случаях, поэтому обычно они хранятся в переменных, зарезервированных в разделе данных задачи.

Подсказки о необходимости ввода данных удобно располагать в последних строках рабочей области экрана. Количество и размер строк на экране зависят от установленного видеорежима, поэтому номера и адреса последних строк рабочей области экрана вычисляются при выполнении задачи.

Если верхнюю линию изображения текста поместить в строку с номером (versize - hsymb), то его нижняя линия совпадет с нижней границей рабочей области экрана.

Замечание
Напомним, что переменные Horsize и versize содержат соответственно размер строк и их количество на экране, а переменная hsymb— высоту символа (см.

Содержание раздела