Переключение между текстовым и графическим режимами
Инициализация графики
Классификация типов драйверов и видеорежимов
Перед началом работы с графикой необходимо установить наиболее подходящий для данного монитора видеорежим. В комплект поставки Турбо Паскаля входит ограниченное число драйверов (каталог BGI), каждый из которых может поддерживать один или несколько видеорежимов. Тип драйвера и режим могут быть заданы в виде числа или символьной константы.
Задание типа графического адаптера
Detect
=0
автоопределение
IBM8514
=6
адаптер 8514
VGA
=9
адаптер VGA
Возможные графические режимы для различных типов видеоадаптеров
Драйвер
Значение константы режима
Разрешение экрана (в точках)
Палитра
Число видеостраниц
VGA
640 X 200
640 X 350
640 X 480
16 цветов
16 цветов
16 цветов
IBM8514
640 X 480
1024 X 768
256 цветов
256 цветов
Любая программа, предназначенная для работы с графикой, обязательно должна содержать блок вызовов процедур инициализации графического режима и обращение к процедуре его завершения.
Gd – тип драйвера
Gm – режим графики
USES Graph;
VAR
Gd,Gm:Integer;
Begin
Gd:=VGA; Gm:=1;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
………….
CloseGraph; {завершение графического режима}
End.
Переключение режимов осуществляется процедурой
SetGraphMode(GraphMode);
Переключает систему в графический режим и очищает экран монитора.
Процедура
RestoreCRTMode;
возвращает систему в текстовый режим.
USES Graph;
VAR
Gd,Gm:Integer;
Begin
{Первоначально в текстовом режиме}
WriteLn(‘Нажмите Enter для перехода в графику’);
ReadLn;
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
OutText(‘Нажмите Enter для возвратав текстовый режим’);
ReadLn;
{Переключение в текстовый режим}
RestoreCRTMode;
WriteLn(‘Снова нажмите Enter’);
ReadLn;
SetGraphMode(GetGraphMode);
OutText(‘Вы снова в графике’);
ReadLn;
CloseGraph;
End;
(0,0) X
Y
Определение значений максимальных координат экрана в модуле Graph реализовано с помощью функций