Язык:
Русский
English
SetWriteMode (процедура) (модуль Graph)
Устанавливает режим записи для рисования линий.
Объявление
Procedure SetWriteMode(WriteMode : Integer);
Режим
Real, Protected
Замечания
Каждой двоичной операции между каждыми двумя соответствующими байтами рисуемой линии и экрана соответствует константа двоичной операции. Например, CopyPut использует ассемблерную команду MOV, замещая вновь нарисованной линией всё, что было на экране до этого. XORPut использует для вывода линии команду XOR. Две последовательные команды XOR сотрут построенную линию, возвращая экран в первоначальное состояние.
SetWriteMode воздействует только на обращения к подпрограммам DrawPoly, Line, LineRel, LineTo и Rectangle.
Смотри также
Пример
Язык:
Русский
English
{ Пример программы для процедуры SetWriteMode }
var
Driver, Mode, I : Integer;
X1, Y1, Dx, Dy : Integer;
FillInfo : FillSettingsType;
begin
DirectVideo := False; { Выключаем режим прямой записи }
Randomize;
{ Инициализируем графику }
Driver := Detect;
InitGraph(Driver, Mode, 'X:\BP');
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.