Алгоритмические языки и программирование. Часть 3. Модули в Турбо Паскале. Игошина Л.В. - 47 стр.

UptoLike

Составители: 

47
47
ClipOff = False. В первом случае, содержимое экрана за пределами созданного
окна отсекается (т.е. становится невидимым), а во втором - не отсекается.
Для очистки созданного графического окна используется процедура
ClearViewPort.
Для определения координат текущего графического окна используется
процедура GetViewSettings(ViewInfo), где ViewInfo - переменная типа
ViewPortType, описанного в модуле Graph:
Type
ViewPortType = Record
X1, Y1, X2, Y2 : Integer;
Clip : Boolean;
End;
Некоторые адаптеры, в том числе VGA, EGA, поддерживают
многостраничную работу. Нумерация страниц начинается с нулевой.
Вывод производится на так называемую активную страницу. Процедура
SetActivePage(Num) делает активной страницу с номером, задаваемым
переменной типа word - Num. Если при инициализации вы используете
автоопределение графического драйвера (detect), то устанавливается режим
работы с максимально возможным номером. Для обеспечения работы с двумя
страницами нужно уменьшить номер режима, воспользовавшись
процедурой
SetGraphMode(Gr_Mode-1). Gr_Mode - переменная, задающая режим в вызове
процедуры InitGraph.
Для просмотра какой-либо страницы необходимо сделать ее активной с
помощью процедуры SetVisualPage(Num). Num - номер активной страницы.
Пример работы с двумя страницами иллюстрирует следующая программа.
В ней на страницу с номером 0 выводится залитый прямоугольник и сообщение о
том, что это нулевая страница, а на
первую страницу выводится залитый эллипс.
Uses CRT, Graph;
Var Gr_Driver, Gr_Mode : Integer; Xc, Yc :integer;
Begin
Gr_driver:=Detect; InitGraph(Gr_Driver, Gr_Mode, '');
SetGraphMode(Gr_Mode-1); {Уменьшение номера режима для
обеспечения возможности доступа к нулевой странице}
SetFillStyle(1,14); {Установка стиля заливки}
Xc:= GetMaxX div 2; Yc:= GetMaxY div 2; {Координаты центра экрана}
{Вывод на 0 страницу}
Bar(Xc-200, Yc-90, Xc+200, Yc+90);
Setcolor(1);
OuttextXY(Xc-50,Yc,' Page 0 - Press enter');
SetActivePage(1); {Активизация страницы 1}
{Вывод на 1 страницу}
SetFillStyle(1,7); {Установка стиля заливки}
FillEllipse(Xc, Yc, 200,100);
OuttextXY(Xc-50,Yc,' Page 1 - Press enter');
                                                                           47




ClipOff = False. В первом случае, содержимое экрана за пределами созданного
окна отсекается (т.е. становится невидимым), а во втором - не отсекается.
      Для очистки созданного графического окна используется процедура
ClearViewPort.
      Для определения координат текущего графического окна используется
процедура GetViewSettings(ViewInfo), где ViewInfo - переменная типа
ViewPortType, описанного в модуле Graph:
      Type
             ViewPortType = Record
                    X1, Y1, X2, Y2 : Integer;
                    Clip : Boolean;
                               End;
      Некоторые адаптеры, в том числе VGA, EGA, поддерживают
многостраничную работу. Нумерация страниц начинается с нулевой.
      Вывод производится на так называемую активную страницу. Процедура
SetActivePage(Num) делает активной страницу с номером, задаваемым
переменной типа word - Num. Если при инициализации вы используете
автоопределение графического драйвера (detect), то устанавливается режим
работы с максимально возможным номером. Для обеспечения работы с двумя
страницами нужно уменьшить номер режима, воспользовавшись процедурой
SetGraphMode(Gr_Mode-1). Gr_Mode - переменная, задающая режим в вызове
процедуры InitGraph.
      Для просмотра какой-либо страницы необходимо сделать ее активной с
помощью процедуры SetVisualPage(Num). Num - номер активной страницы.
      Пример работы с двумя страницами иллюстрирует следующая программа.
В ней на страницу с номером 0 выводится залитый прямоугольник и сообщение о
том, что это нулевая страница, а на первую страницу выводится залитый эллипс.
      Uses CRT, Graph;
        Var Gr_Driver, Gr_Mode : Integer;        Xc, Yc :integer;
      Begin
         Gr_driver:=Detect; InitGraph(Gr_Driver, Gr_Mode, '');
         SetGraphMode(Gr_Mode-1); {Уменьшение номера режима для
                  обеспечения возможности доступа к нулевой странице}
         SetFillStyle(1,14); {Установка стиля заливки}
      Xc:= GetMaxX div 2; Yc:= GetMaxY div 2; {Координаты центра экрана}
          {Вывод на 0 страницу}
         Bar(Xc-200, Yc-90, Xc+200, Yc+90);
         Setcolor(1);
         OuttextXY(Xc-50,Yc,' Page 0 - Press enter');
          SetActivePage(1); {Активизация страницы 1}
             {Вывод на 1 страницу}
          SetFillStyle(1,7); {Установка стиля заливки}
          FillEllipse(Xc, Yc, 200,100);
         OuttextXY(Xc-50,Yc,' Page 1 - Press enter');

                                                                           47