Процедура SetPalette

Модуль GRAPH

Заменяет один цвет в палитре.

Объявление:

Procedure SetPalette(ColorNum : Word; Color : Shortint);

Режим:

Protected,  Real

Замечание:

Устанавливает компонент палитры с номером ColorNum на Color. Например, SetPalette (0, LightCyan) делает первым цветом в палитре цвет LightCyan. Значение ColorNum может находиться в диапазоне от 0 до 15, в зависимости от текущего графического драйвера и текущего графического режима. Если в процедуру передаются недопустимые параметры, то в переменную GraphResult возвращается значение grError, и палитра остается неизменной.

Изменения, производимые в палитре, сразу отображаются на экране. В примере, данном к этой процедуре, на экран выводятся несколько линий, затем палитра изменяется по случайному закону.

Нужно быть в графическом режиме. Можно использовать только на EGA, EGA64 или VGA (но не IBM 8514).

Пример:

{Setplt.PAS}
 
 { Пример программы для процедуры 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.