Процедура SetRGBPalette

Устанавливает цветовую гамму при работе с дисплеем IBM 8514 и адаптером VGA. Заголовок:

Procedure SetRGBPalette(ColNum,

RedVal,GreenVal,BlueVal:Integer);

Здесь ColNum – номер цвета; RedVal, GreenVal, BlueVal – выражения типа Integer, устанавливающие интенсивность соответственно красной, зеленой и синей составляющих цвета.

Эта процедура может работать только с дисплеем IBM 8514, а также с адаптером VGA, использующим видеопамять объемом 256 Кбайт. В первом случае параметр ColNum задается числом в диапазоне 0...255, во втором – в диапазоне 0...15. Для установки интенсивности используется 6 старших разрядов младшего байта любого из параметров RedVal, GreenVal, BlueVal.

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

Uses Graph,CRT;

var

Driver, Mode, Err, xl, yl: Integer;

begin

{Инициируем графический режим}

Driver := Detect;

InitGraph(Driver, Mode, '');

Err := GraphResult;

if ErroO then

WriteLn(GraphErrorMsg(Err))

else if Driver in [IBM8514, VGA] then

begin

{Выводим прямоугольник в центре экрана}

x1 := GetMaxX div 4;

y1 := GetMaxY div 4;

SetColor(lS);

Bar(x1,y1,3*x1,3*y1);

{Изменяем белый цвет на случайный}

while not KeyPressed do

SetRGBPalette(15,Random(256),Random(256),Random(256));

CloseGraph

end

else

begin

CloseGraph; .

WriteLn('Адаптер не поддерживает ' , 'RGB-режим управления цветами')

end

end.