Otevřít hlavní menu

SetPalette

Verze z 4. 10. 2012, 16:37, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (Created page with "Změní jednu barvu palety, jak je určeno parametry ColorNum a Color. ;Deklarace procedure SetPalette(ColorNum: Word; Color: Shortint); ;Režim :Reálný, Chráněný ;Po...")
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Změní jednu barvu palety, jak je určeno parametry ColorNum a Color.

Deklarace
procedure SetPalette(ColorNum: Word; Color: Shortint);
Režim
Reálný, Chráněný
Poznámky
Změní položku ColorNum v paletě na barvu Color. SetPalette(0, LightCyan) učiní první barvou v paletě světle tyrkysovou. ColorNum může nabývat hodnot od 0 do 15, v závislosti na aktuálním grafickém driveru a aktuálním grafickém režimu. Při zadání neplatného parametru vrací GraphResult hodnotu grError a paleta se nemění.
Změny barev v paletě jsou na obrazovce okamžitě viditelné. Ve vzorovém příkladě se na obrazovku nakreslí několik čar a poté se paleta náhodně mění. Pokaždé, když se změní barva palety, všechny výskyty dané barvy na obrazovce se změní na novou barvu.
Omezení
Je nutno být v grafickém režimu a lze použít pouze s EGA, EGA 64 nebo VGA (nikoli s IBM 8514).
Viz také
GetBkColor
GetColor
GetPalette
GraphResult
SetAllPalette
SetBkColor
SetColor
SetRGBPalette


Vzorový příklad

{Setplt.PAS}
{Vzorový příklad pro proceduru SetPalette.}
uses Crt, Graph;
var
  GraphDriver, GraphMode: Integer;
  Color: Word;
  Palette: PaletteType;
begin
  GraphDriver := Detect;
  InitGraph(GraphDriver, GraphMode, ' ');
  if GraphResult <> grOk then
    Halt(1);
  GetPalette(Palette);
  if Palette.Size <> 1 then
  begin
    for Color := 0 to Pred(Palette.Size) do
    begin
      SetColor(Color);
      Line(0, Color * 5, 100, Color * 5);
    end;
    Randomize;
    repeat
      SetPalette(Random(Palette.Size),Random(Palette.Size));
    until KeyPressed;
  end
  else
    Line(0, 0, 100, 0);
  Readln;
  CloseGraph;
end.