Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Организация простейшего графического интерфейса

Графический режим

Формирование изображения на экране происходит с помощью дисплейного адаптера. В зависимости от установленного адаптера дисплей может работать в текстовых или графических режимах. Работу в графическом режиме поддерживает модуль Graph.

Любая информация на экране дисплея при работе в графическом режиме представлена совокупностью светящихся точек (пикселей), которые можно закрасить в тот или иной цвет. Каждая точка имеет координаты X и У. Координата X увеличивается по горизонтали слева направо, начиная с О, координата Y увеличивается по вертикали сверху вниз, также начиная с 0. Таким образом, верхняя левая точка с координатами (0, 0) является началом координат.

 

Дисплей может работать в нескольких графических режимах, каждому из которых соответствует свой формат изображения, т.е. разрешающая способность экрана (количество пикселей по горизонтали и вертикали) и набор используемых цветов. Наиболее распространены дисплеи вида EGA, VGA и SVGA. Например, адаптер EGA обеспечивает вывод 640*350 точек при 16 цветах и двух страницах в графическом и 80*43 символов в текстовом режиме.

Формат изображения определяется техническими характеристиками дисплея, а также используемыми в текущий момент адаптером и драйвером. Адаптер - устройство сопряжения компьютера и внешнего устройства. Драйвер - программа, обеспечивающая взаимодействие программы с внешним устройством; обычно это файл с расширением BGI.

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

 

Инициализация и закрытие графического режима

Модуль Graph содержит объекты (типы, константы, переменные и подпрограммы), позволяющие программе создавать изображения на графическом экране. Он предоставляет программе эти объекты только после того, как программа инициализирует графический режим обращением к процедуре Init-Graph (<драйвер>, <режим>, <путъ>).

Здесь <драйвер> - переменная, определяющая вид графического драйвера,
<режим> - переменная типа integer, в которую процедура InitGraph поставляет код режима графического адаптера;
<путъ> - значение типа string, задающее путь к файлу драйвера *.bgi.

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

 

Если в программе не указан или указан неверно переход в графический режим (для InitGraph не заданы или неверно заданы параметры), то работа программы прерывается. Для анализа этой ситуации после обращения к InitGraph должно быть проверено значение функции GraphResult.
Эта функция возвращает код (в интервале [-10, 0]), который характеризует результат выполнения графической операции, выполнявшейся перед обращением к этой функции.

 

Поскольку после вызова значение GraphResult модулем Graph полагается равным 0, то лучше запомнить его в качестве значения переменной, описанной в программе (например, переменной ErrorCode), а затем проверить значение этой переменной. Равенство этого значения константе grOk (или 0) модуля Graph означает, что проверяемая графическая операция выполнилась успешно (равенство остальным значениям нужно исследовать при необходимости более тонкого анализа причин невыполнения операции).

 

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

Задание и контроль выполнения операции InitGraph должны быть реализованы в каждой программе, использующей графический режим, поэтому приведем этот "типовой" фрагмент программы:

var GraphDriver, GraphMode, ErrorCode : integer;...
Begin
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, ");
ErrorCode := GraphResult;
if ErrorCode < > grOk then
begin WriteLn('Ошибка графики:', GraphErrorMsg(ErrorCode));
WriteLn('Программа завершена'); ReadLn; Halt;
end;...

 

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

 




 

Комментарии:


Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru