Краткая справка по языку программирования Turbo Pascal

Любое изображение на экране монитора



1. Введение

Любое изображение на экране монитора формируется из отдельных элементов – пикселов (от англ. Pixel - Picture Element – элемент изображения). Экран монитора можно рассматривать как матрицу пикселов. Для получения того или иного изображения на экране монитора как в графическом, так и в текстовом режимах необходимо заставить светиться строго определенную группу пикселов. В текстовом режиме на экран могут выводиться только определенные символы, образы которых хранятся в постоянной или оперативной памяти компьютера, а управление отдельными пикселами невозможно. В графическом режиме появляется возможность управления отдельными пикселами, что позволяет формировать любые изображения.
С технической точки зрения управлением монитора занимается специальное устройство компьютера – видеоадаптер. Именно согласно его сигналам зажигаются и гаснут отдельные точки на экране монитора. Конструктивно видеоадаптер – это весьма сложное электронное устройство, управляемое собственным микропроцессором. Качество изображения, получаемое на экране монитора во многом зависит не только от самого монитора, но и от типа видеоадаптера. В самом общем виде видеоадаптер состоит из контроллера электронно-лучевой трубки (CRT-контроллера) и видеопамяти (видеобуфера). Для получения изображения на экране монитора необходимо поместить в видеопамять определенную информацию. Графическое программирование на таком уровне представляется весьма непростой и трудоемкой задачей, требующей знания особенностей того или иного видеоадаптера.
Чтобы сделать процесс создания графических изображений более простым и эффективным фирма Borland International разработала специальную библиотеку GRAPH, а также набор графических драйверов, позволяющих работать с различными типами видеоадаптеров. Графический драйвер – это вспомогательная программа-посредник, обеспечивающая взаимодействие пользовательских программ с конкретным графическим устройством. Графические драйверы хранятся в файлах с расширением .BGI (Borland Graphic Interface). Обычно эти файлы расположены в каталоге \BP\BGI


(или \TP\BGI).
2. Модуль Graph. Инициализация графического режима
Для формирования графических изображений в среде Borland (Turbo) Pascal имеется стандартный библиотечный модуль . В нем содержится множество графических процедур и функций, десятки стандартных констант и типов данных.
Любая программа, использующая графику должна прежде всего подключить модуль Graph. Это выполняется директивой USES:
USES Graph;
С этого момента все графические средства доступны пользователю.
Прежде чем работать с графикой необходимо установить определенный графический видеорежим. Выбор видеорежима зависит от имеющегося графического адаптера. Большинство современных компьютеров (IBM-совместимых) имеют в своем составе видеоадаптер стандарта VGA (Video Graphic Array) или SuperVGA. Для работы с таким адаптером используется графический драйвер EGAVGA.BGI. При этом имеется возможность работы в трех различных видеорежимах:



Режим Разрешение
VGALo = 0 640х200
VGAMed = 1 640х350
VGAHi = 2 640х480

Разрешение определяется максимальным числом пикселов в строке и максимальным количеством строк пикселов.
Во всех трех видеорежимах возможно одновременное отображение до 16 различных цветов.
Для переключения видеоадаптера в графический режим и установки определенного видеорежима необходимо вызвать специальную процедуры инициализации графики – InitGraph:
InitGraph( var GraphDriver, GraphMode : Integer; DriverPath : String );
Процедура InitGraph имеет 3 параметра. Целочисленные переменные GraphDriver и GraphMode определяют соответственно тип графического видеоадаптера и видеорежим. Третий параметр DriverPath указывает путь в каталог, содержащий файлы с графическими драйверами.
В модуле Graph для задания типа видеоадаптера определен ряд констант:
Detect = 0 – автоопределение;

CGA = 1 – адаптер CGA;

EGA = 3 – адаптер EGA;

VGA = 9 – адаптер VGA;

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

VAR

GrDr, GrMd : integer;

BEGIN

  GrDr := detect;

  InitGraph( GrDr, GrMd, ‘c:\bp\bgi’ );

  { теперь можно вызывать графические процедуры }

  . . .

  . . .

  . . .

  CloseGraph;

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

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