SetWriteMode: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(Created page with "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á...") |
(Žádný rozdíl)
|
Verze z 4. 10. 2012, 16:39
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.
- Viz také
- Line
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.