- •InitGraph (var GraphDriver; {тип адаптера}
- •Var GraphMode Integer; {режим графики}
- •Классификация и анализ графических режимов
- •Очистка экрана и переключение режимов
- •Системы координат и «текущий указатель»
- •Коэффициент сжатия изображения
- •Построение прямоугольников и ломаных
- •X, y: Integer; {координаты точки}
- •Задание типа заливки
- •Заливка областей изображения
- •Опрос и установка цветов пера и фона
- •Управление палитрой
- •Управление видеостраницами
- •Графические окна
- •Вывод текста
- •Выбор шрифта и стиля
- •Непосредственный вывод строк
Классификация и анализ графических режимов
Возможные графические режимы для различных адаптеров приведены в таблице. Во втором столбце приведены имена предопределенных констант, которые можно передавать в процедуры, управляющие графическими режимами. Последний столбец показывает количество полноэкранных изображений, которые могут храниться в памяти видеоадаптера одновременно.
-
Драйвер
Имя константы режима и ее значение
Разрешение экрана (в точках)
Палитра
Число видеостраниц
CGA
CGAC0 = 0
320x200
4 цвета
1
CGAC1 = 1
320x200
4 цвета
1
CGAC2 = 2
320x200
4 цвета
1
CGAC3 = 3
320x200
4 цвета
1
CGAHi = 4
640x200
2 цвета
1
MCGA
MCGAC0 = 0
320x200
4 цвета
1
MCGAC1 = 1
320x200
4 цвета
1
MCGAC2 = 2
320x200
4 цвета
1
MCGAC3 = 3
320x200
4 цвета
1
MCGAMed= 4
640x200
2 цвета
1
MCGAHi = 5
640x480
2 цвета
1
EGA
EGALo = 0
640x200
16 цветов
4
EGAHi = 1
640x350
16 цветов
2
EGA64
EGA64Lo = 0
640x200
16 цветов
1
EGA64Hi = 1
640x350
4 цвета
1
EGAMono
EGAMonoHi = 3
640x350
2 цвета
1(2)
Herc
HercMonoHi = 0
720x348
2 цвета
2
АТТ
АТТ400С0 = 0
320x200
4 цвета
1
АТТ400С1 = 1
320x200
4 цвета
1
АТТ400С2 = 2
320x200
4 цвета
1
АТТ400СЗ = 3
320x200
4 цвета
1
ATT400Med = 4
640x200
2 цвета
1
АТТ400Нi= 5
640x400
2 цвета
1
VGA
VGALo = 0
640x200
16 цветов
4
VGAMed = 1
640x350
16 цветов
2
VGAHi = 2
640x480
16 цветов
1
PC3270
PC3270Hi = 0
720x350
2 цвета
1
IBM8514
IBM8514Lo = 0
640x480
256 цветов
1
IBM8514= 1
1024x768
256 цветов
1
Для того чтобы полностью использовать возможности установленного в ПК адаптера, необходимо воспользоваться инструкцией по работе с ним.
Процедура DetectGraph. Для тестирования графического адаптера в модуле Graph объявлена процедура:
DetectGraph (VAR GraphDriver, GraphMode: Integer)
Эта процедура может быть вызвана до инициализации графики. Через формальный параметр GraphDriver возвращается значение из первого столбца таблицы указанной выше таблицы, а через параметр GraphMode - обычно последнее значение из соответствующего раздела второго столбца. Эти значения и рекомендуется подставлять в качестве фактических параметров в процедуру InitGraph. После определения GraphDriver автоматически становится доступным диапазон графических режимов, реализуемых адаптером
Существует возможность манипуляции режимами работы графического адаптера - при помощи группы процедур и функций, но уже после инициализации графики. Но часто бывает важным сначала определить разрешенные значения режимов.
Диапазоны графических режимов. Номер текущего графического режима для установленного драйвера определяется функцией
GetGraphMode: Integer,
Функция
GetMaxMode: Word
возвращает номер максимального режима для графического адаптера; таким образом, каждый драйвер поддерживает диапазон режимов 0...GetMaxMode. Обычно этот же результат можно получить из процедуры
GetModeRange (GraphDriver: Integer; VAR LoMode, HiMode: Integer),
через параметры LoMode и HiMode, возвращающей соответственно нижнюю и верхнюю границу режимов для драйвера GraphDriver. Но по ряду технических соображений предпочтительнее пользоваться функцией GetMaxMode, полагая минимальный номер режима равным нулю.
Функции GetModeName и GetDriverName.
GetModeName (GraphMode: Word): String. Функция возвращает строку, в которой содержится последовательно через пробелы разрешение, имя константы и иногда название палитры, например, '640x200 CGA'. Представленный пример поможет определить, в каких графических режимах может работать используемая ПЭВМ.
-
USES Graph;
{подключен модуль Graph}
{$I initgraf.pas}
{ процедура инициализации}
VAR
mode: Integer;
BEGIN
Grlnit;
{ инициализация}
for mode := 0 to GetMaxMode do
{ показ всех режимов }
OutTextXY(10, 10+mode*10, GetModeName( mode ) );
ReadLn;
{ пауза до нажатия...}
CloseGraph
{ закрытие графики}
END.
Функция GetDriverName: String позволяет получить имя используемого драйвера. Ее применение обосновано только в том случае, если в процедуре InitGraph переменная GraphDriver определена, как Detect.
