В любой момент работы можно получить установки текущего графического окна процедурой:
GetViewSettings(var Viewport : ViewPortType), которая возвращает координаты текущего окна и установку отсечения в переменной типа ViewPortType, определенного в модуле как:
type
ViewPortType=record { абсолютные }
x1,y1,x2,y2:integer; { координаты окна}
clip:boolean { отсечение }
end;
Пример.
Uses Graph;
Var Driver,Mode:integer;
ViewPort:ViewPortType;
Begin
Driver:= Detect;
InitGraph (Driver, Mode,'c:\bin\tp');
if GraphResult=0 then
begin
GetViewSettings(ViewPort);
with ViewPort do
begin
Rectangle(0,0,x2-x1,y2-y1);
if clip then writeln(' отсечка - да ')
else writeln(' отсечка - нет ')
end
readln;
CloseGraph
end
End.
Напомним, что видеопамять дисплея разделена на страницы, каждая из которых задается своим номером. При использовании нескольких графический страниц пользователь может направлять графический вывод в страницу, не выводимую в данный момент, а затем сделать эту страницу видимой. Данная последовательность действий используется при "оживлении" изображения.
В модуле Graph страничную организацию обеспечивают процедуры:
SetActivPage(N:word) - устанавливает активной страницу с номером N, поэтому весь графический вывод с этого момента будет направлен в нее.
SetVisualPage(N:word) - делает активной страницу с номером N.
Адаптер CGA многостраничный режим работы не поддерживает.
Пример.
Программа выводит в невидимую страницу 0 квадрат, а затем делает ее видимой , а в невидимой 1 рисует окружность и делает уже ее видимой.