Система программирования Turbo Pascal
508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

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



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


508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.