Процедура SetWriteMode

Устанавливает режим записи для рисования линий.

Объявление:

Procedure SetWriteMode(WriteMode : Integer);

Режим:

Protected,  Real

Замечание:

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

SetWriteMode воздействует только на обращения к подпрограммам DrawPoly, Line, LineRel, LineTo и Rectangle.

Пример:

{Setwrtmd.PAS}
 
 { Пример программы для процедуры SetWriteMode }
 
 Uses Crt, Graph;
 
 Var Driver, Mode, I : Integer;
      X1, Y1, Dx, Dy : Integer;
            FillInfo : FillSettingsType;
 
 Begin
  DirectVideo:=False;    { Выключаем режим прямой записи }
  Randomize;
  { Инициализируем графику }
  Driver:=Detect;
  InitGraph(Driver, Mode, '');
  If GraphResult < 0 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);
   Rectangle(X1, Y1, X1 + Dx, Y1 + Dy);   { Рисуем }
   Delay(10);                             { Ждем }
   Rectangle(X1, Y1, X1 + Dx, Y1 + Dy);   { Стираем }
  Until KeyPressed;
  ReadLn;
  CloseGraph;
 End.