Система программирования Turbo Pascal



                


MoveTo. Устанавливает новое текущее...


h2> SetActivePage.

Делает активной указанную страницу видеопамяти. Заголовок:

Procedure SetActivePage(PageNum: Word);

Здесь PageNum - номер страницы.

Процедура может использоваться только с адаптерами, поддерживающими многостраничную работу (EGA, VGA и т.п.). Фактически процедура просто переадресует графический вывод в другую область видеопамяти, однако вывод текстов с помощью Write/WriteLn всегда осуществляется только на страницу, которая является видимой в данный момент (активная страница может быть невидимой). Нумерация страниц начинается с нуля.

Процедура 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 устанавливается режим работы с максимально возможным номером; перечисленные адаптеры в этом режиме могут работать только с одной графической страницей, чтобы обеспечить работу с двумя страницами, следует уменьшить номер режима.









Содержание  Назад  Вперед