HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
26 ноября. В 1884 году (140 лет назад) - В России вводится налог на недвижимость.
 
 

Turbo Pascal Documentation

Процедура SetWriteMode

Модуль Graph


     Функция: Устанавливает режим записи при вычерчивании линии.
     Описание: SetWriteMode(реж_записи: integer)
     Примечания: Определены следующие констанлы:

            const
              CopyPut  = 0;     { MOV }
              XORPut   = 1;     { XOR }

     Каждая константа соответствует двоичной операции  между
каждым  байтом  строки  и соответствующим байтом экрана. Для
константы CopyPut используется  инструкция  ассемблера  MOV.
При  этом вычерчиваемая линия "затирает" то, что было на эк-
ране. Для константы XORPut для комбинирования линии с  изоб-
ражением на экране используется инструкция XOR. Две последо-
вательные операции XOR приведут к стираних линии  и  восста-
новлению исходного изображения на экране.

           Замечание: Процедура SetWriteMode  влияет  только
      на  обращение  к следующим процедурам: DrowPoly, Line,
      LineRel, LineTo и Rectangle.

     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Прочее: См. также процедуры PutImage и SetLinkStyle.
     Пример:

         uses Graph;
        var
          Gd, Gm : integer;
               i : integer;
          x1, y1, dx, dy : integer;
          FillInfo : FillSettingsType;
        begin
          DirectVideo := false; { "выключить" запись на экран }
          Randomize;
          Gd := Detect;
          InitGraph(Gd, Gm, '');
           if GraphResult <> grOk then
             Halt(1);
         { заполнить экран используемым по умолчанию образцом }
         GetFillSettings(FillInfo); { получить текущие параметры }
         SetFillStyle(WideDotFill, FillInfo.Color);
         Bar(0, 0, GetMaxX, GetMaxY);
         dx := GetMAxX div 4; { задать размерность прямоуголиника }
         dy := GetMaxY div 4;
         SetLineStyle(SolidLn, 0, ThickWidth);
         SetWriteMode(XORPut);  { режим XOR для прямоугольника }
         repeat
           x1 := Random(GetMaxX - dx);
           y1 := Random(GetMaxY - dy); { нарисовать его }
           Delay(0);   { короткая пауза }
           Rectangle(x1, y1, x1 + dx, y1 + dy) { стереть его }
         until KeyPressed;
         Readln;
         CloseGraph;
       end.




HOME