процедура восстанавливает видеорежим, который был
SetGraphMode(Mode: integer);
процедура переводит систему в графический режим и очищает экран.
RestoreCRTMode;
процедура восстанавливает видеорежим, который был до инициализации графики.
Когда все работы для конструирования и показа графики выполнены, необходимо выйти из графического режима с помощью не имеющей параметров процедуры CloseGraph, то есть закрыть графический режим.
381
Память видеобуфера подразделяется на
видеостраницы. Их количество зависит от текущего режима и типа адаптера. Более одной страницы имеют видеокарты EGA, VGA, Hercules. Нумерация страниц начинается с нуля. В каждый момент времени на экране монитора может быть видимой одна страница. По умолчанию это страница с номером 0. Страница, на которой в данный момент формируется изображение, называется
активной.
Для работы со страницами предусмотрены две процедуры: SetActivPage(Page: word) - устанавливает активную страницу для построения изображения, при этом создаваемый рисунок не отображается на экране. После построения изображения можно визуализировать эту страницу при помощи процедуры SetVisualPage(Page: word).
Для предотвращения и нейтрализации ошибок в графическом режиме предусмотрены две функции GraphResult и GraphErrorMsg. GraphResult возвращает значение О (grOK), если последняя графическая операция выполнялась без ошибок. GraphError - возвращает строку сообщения об ошибке, соответствующую коду ошибки.
Приведем последовательность операторов, выполняющих
инициализацию графического режима:
Uses Graph;
Var DriverVar, ModeVar :integer;
ErrorCode : integer;
Begin
DriverVar:=Detect;
lnitGraph(DriverVar, Modevar,' ');
ErrorCode:=GraphResult;
IF ErrorCodeOgrOK Then
begin
writeln('Графическая системная ошибка: ',ErrorCode);
Halt(1);
end
End.
Иногда в процессе работы требуется периодически переходить из текстового режима в графический и наоборот. Ниже приводится пример подобных
переключений между режимами.
Uses Graph;
Var DriverVar, ModeVar: integer;
Begin
ClrScr;
Writeln(Текстовый режим');
...
DriverVar:=Detect;
InitGraph(DriverVar, Modevar,'');
OutTextXY(200,100, 'Графический режим');
...
RestoreCRTMode;
Writeln(Текстовый режим');
382
SetGraphMode(ModeVar);
OutTextXY(200,100,'Графический режим');
CloseGraph
End.
Следует иметь в виду, что при переходе из одного режима в другой выполняется очистка экрана. Поэтому при необходимости программист должен сам заботиться о сохранении и восстановлении содержимого экрана или его области.
383
380 :: 381 :: 382 :: 383 :: Содержание
Содержание Назад Вперед