4.2 Управление курсором

void gotoxy(int x, int y)

Перемещает курсор в заданную позицию текстового окна. Левый верхний угол окна имеет координаты (1,1). Если координаты по какой-то причине указаны неверно, то вызов данной функции игнорируется. Примером такой ошибки может служить вызов gotoxy (40,30), когда размер окна равен 35×25.

int wherex(); int wherey()

Возвращают координаты текущей позиции курсора (относительно текстового окна).

void _setcursortype(int cur_t)

Задает внешний вид текстового курсора. С помощью этой функции можно отключить курсор (параметр _NOCURSOR), включить сплошной «блочный» курсор (_SOLIDCURSOR) или вернуть стандартный вид курсора (_NORMALCURSOR). Отключение курсора очень часто используется в интерфейсах-меню и интерфейсах со свободной навигацией.

4.3 Управление атрибутами текста

void highvideo(); void lowvideo()

Устанавливают повышенную и пониженную (соответственно) яркость вывода символов. Эти функции не влияют на все символы, отображаемые в данный момент времени на экране. Их вызов влияет только на последующий вывод на консоль в текстовом режиме.

void normvideo()

Устанавливает нормальную яркость для символов путем возврата к тем значениям текстовых атрибутов (символов и фона), которые были в момент запуска программы.

void textcolor(int newcolor)

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

void textbackground(int newcolor)

Устанавливает цвет фона для выводимого на экран текста. В качестве аргумента можно передавать константы цвета со значениями 0 ÷ 7, приведенные в табл. 2.

void textattr(int newattr)

Устанавливает атрибуты выводимого текста. Эта функция дает возможность установить цвет фона и текста за один вызов. Для того чтобы сформировать байт атрибутов, необходимо цвет фона сдвинуть на 4 разряда влево и сложить с цветом текста: attr=back<<4+text.

4.4 Очистка текста

Все перечисленные ниже функции работают внутри текстового окна, не изменяя символы за его пределами.

void clrscr()

Очищает текущее текстовое окно и устанавливает курсор в левый верхний угол (в позицию 1,1).

void clreol()

Стирает все символы от позиции курсора до конца строки без перемещения курсора.

void delline(); void insline()

Функция delline удаляет текущую строку (в которой находится курсор) и поднимает все строки, находящиеся ниже курсора, на одну строку вверх. Функция insline вставляет пустую строку в позицию курсора текстового окна, используя при этом текущий цвет фона. Все строки, лежащие ниже данной, сдвигаются на одну строку вниз, а последняя строка в текстовом окне пропадает.

4.5 Копирование текста

Перечисленные далее функции работают без учета текущего окна. Все параметры задаются относительно левого верхнего угла экрана, имеющего координаты (1,1).

int movetext(int left, int top, int right, int bottom, int destleft, int desttop)

Копирует содержимое прямоугольной области на экране, определяемой значениями left (левая граница), top (верхняя граница), right (правая граница) и bottom (нижняя граница), в новую прямоугольную область, определяемую аналогичным образом. Левый верхний угол нового прямоугольника задается парой параметров destleft и desttop. Копирование для перекрывающихся окон выполняется корректно.

int gettext(int left, int top, int right, int bottom, void *destin)

Заносит содержимое прямоугольной области на экране, заданной значениями параметров left, top, right, bottom в область памяти, на которую указывает destin.

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

Пространство, необходимое для прямоугольника в w столбцов шириной и h строк высотой определяется следующим образом:

размер в байтах = (h строк) × (w столбцов) × 2.

int puttext(int left, int top, int right, int bottom, void *source)

Выводит содержимое области памяти, на которую указывает source, в прямоугольник на экране, координаты которого задаются значениями left, top, right и bottom. Функция выводит содержимое области памяти в заданный прямоугольник в последовательности слева направо и сверху вниз.


5. Реализация пользовательского интерфейса в Borland C++

5.1 Общие принципы

При внимательном рассмотрении перечисленных в разделе 2 видов пользовательского интерфейса можно заметить, что во всех случаях ввод и вывод информации производятся отдельно от основных вычислений в программе. Общий подход к проектированию приложений заключается в том, чтобы отделить интерфейсную часть от вычислительной. Вычислительная часть должна быть построена таким образом, чтобы как можно меньше зависеть от пользовательского интерфейса, от способов ввода и вывода информации. Все исходные данные передаются в вычислительное ядро стандартными методами, как правило, через параметры функций. Ядро возвращает результаты и, возможно, информацию о возникших ошибках. Интерфейсная часть самостоятельно интерпретирует эту информацию и сообщает пользователю результаты выполнения.

Вычислительная часть программы не должна самостоятельно выводить на экран какие-либо сообщения (исключение составляют сообщения, выводимые в отладочных целях, но их в финальной версии программы также быть не должно). Кроме того, она не должна завершать работу программы (за исключением ситуаций, когда нормальное продолжение работы в принципе невозможно, например, при сильных повреждениях служебных структур в памяти).

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

Основное требование к интерфейсной части – обеспечивать максимальную защиту от ошибок ввода. Контроль сложных зависимостей между вводимыми данными, которые определяются типом выполняемой задачи, обычно выполняется ядром. В то же время интерфейс в состоянии отследить простые ошибки: ввод строки вместо числа, ввод числа за пределами заданного диапазона и т.п. Проверкам «на глупость» должны подвергаться все данные, вводимые пользователем.


Информация о работе «Организация интерфейса пользователя»
Раздел: Информатика, программирование
Количество знаков с пробелами: 36767
Количество таблиц: 3
Количество изображений: 6

Похожие работы

Скачать
53297
2
3

... типами устройств. Согласованность составных систем является балансом между согласованностью физической, синтаксической, семантической и стремлением получить преимущества оптимальных возможностей системы. ПРЕИМУЩЕСТВА СОГЛАСОВАННОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ Согласованный интерфейс приносит пользователям и разработчикам экономию времени и средств. Пользователи выигрывают от того, если им понадобится ...

Скачать
147348
16
12

... недостаточно). Возможно включение комплекса в план учебного процесса, для обучения студентов. 2. Специальная часть разработка программного обеспечения для организации интерфейса программно-методического комплекса   2.1 Разработка технического задания на реализацию специальной части дипломного проекта Наименование программного изделия - "Интерфейс программно - методического комплекса для ...

Скачать
11446
0
5

... (магнитные диски и ленты, электронно-лучевые трубки и т.д.), реализация которых возможна лишь специальными контроллерами. Сложность внешнего интерфейса определяется как сложностью периферийных устройств, так и степенью совместимости их с ЭВМ. Под совместимостью будем понимать возможность объединения отдельных компонентов системы в единую операционную сеть посредством программных и аппаратных ...

Скачать
28993
0
0

... неудобной системой, особенно если рядом нет удобной системы с аналогичными возможностями. С пользователем-любителем все наоборот. Пока в уголовном кодексе не предусмотрено наказание типа "заключения в пользовательский интерфейс", он имеет право выбора (не между одной программой и другой, а между компьютером и телевизором или даже книгой). Он хочет за компьютером развлекаться, и тратить время и ...

0 комментариев


Наверх