SetWriteMode

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání

Nastavuje režim zápisu pro kreslení čar.

Deklarace
procedure SetWriteMode(WriteMode: Integer);
Režim
Reálný, Chráněný
Poznámky
Každá konstanta odpovídá binární operaci mezi jednotlivými bajty čáry a odpovídajícími bajty na obrazovce. CopyPut používá instrukci assembleru MOV a čarou přepíše to, co je na obrazovce. XORPut používá příkaz XOR a kombinuje čáru s obrazovkou. Dva za sebou jdoucí příkazy XOR vymažou nakreslenou čáru a obnoví obrazovku do původní podoby.
SetWriteMode má vliv pouze na volání těchto rutin: DrawPoly, Line, LineRel, LineTo a Rectangle.
Viz také
Line
LineTo


Vzorový příklad

{Setwrtmd.PAS}
{Vzorový příklad pro proceduru SetWriteMode.}
uses Crt, Graph;
var
  Driver, Mode, I: Integer;
  X1, Y1, Dx, Dy: Integer;
  FillInfo: FillSettingsType;
begin
  DirectVideo := False;    { Vypnutí přímého zápisu na obrazovku }
  Randomize;
  Driver := Detect;     { Přepnutí do grafického režimu }
  InitGraph(Driver, Mode, ' ' );
  if GraphResult < 0 then
    Halt(1);
  { Vyplnění obrazovky vzorkem pozadí }
  GetFillSettings(FillInfo);    { Zjištění aktuálních nastavení }
  SetFillStyle(WideDotFill, FillInfo.Color);
  Bar(0, 0, GetMaxX, GetMaxY);
  Dx := GetMaxX div 4;    { Určení rozměrů obdélníka }
  Dy := GetMaxY div 4;
  SetLineStyle(SolidLn, 0, ThickWidth);
  SetWriteMode(XORPut);        { Režim XOR pro obdélník }
  repeat                       { Kreslit do stisku klávesy }
    X1 := Random(GetMaxX - Dx);
    Y1 := Random(GetMaxY - Dy);
    Rectangle(X1, Y1, X1 + Dx, Y1 + Dy);   { Nakreslit }
    Delay(10);                             { Krátká pauza }
    Rectangle(X1, Y1, X1 + Dx, Y1 + Dy);   { Smazat }
  until KeyPressed;
  Readln;
  CloseGraph;
end.