Координаты, окна, страницы
Процедура SetVisualPage
Делает видимой страницу с указанным номером. Обращение:
Procedure SetVisualPAge(PageNum: Word);
Здесь PageNum – номер страницы.
Процедура может использоваться только с адаптерами, поддерживающими многостраничную работу (EGA, VGA и т.п.). Нумерация страниц начинается с нуля.
Следующая программа сначала рисует квадрат в видимой странице и окружность – в невидимой. После нажатия на Enter происходит смена видимых страниц.
Uses Graph; var d,m,e: Integer; s: String; begin d: = Detect; InitGraph(d, m, ''); e: = GraphResult; if e <> grOk then WriteLn (GraphErrorMsg(e)) else {Нет ошибки. Проверяем, поддерживает ли драйвер многостраничную работу с видеопамятью:} if d in [HercMono,EGA,EGA64,MCGA,VGA] then begin {Используем многостраничный режим} if d<>HercMono then SetGraphMode(m-1); {Заполняем видимую страницу} Rectangle(10.10,GetMaxX div 2,GetMaxY div 2); OutTextXY(0.0,'Page 0. Press Enter…'); {Заполняем невидимую} SetActivePage (1); Circle(GetMaxX div 2, GetMaxY div 2, 100); OutTextXY(0,GetMaxY-10,'Page 1. Press Enter…'); {Демонстрируем страницы} ReadLn; SetVisualPage(1); ReadLn; SetVisualPage (0); ReadLn; CloseGraph end else begin {Драйвер не поддерживает многостраничный режим} s: = GetDriverName; CloseGraph; WriteLn('Адаптер ',s,' использует только 1 страницу') end end.
Обратите внимание на оператор:
if doHercMono then SetGraphMode(m-1);
С его помощью гарантированно устанавливается многостраничный режим работы на адаптерах EGA, MCGA, VGA. Как уже говорилось, после инициации графики с Driver=Detect устанавливается режим работы с максимально возможным номером; перечисленные адаптеры в этом режиме могут работать только с одной графической страницей, чтобы обеспечить работу с двумя страницами, следует уменьшить номер режима.