Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Изменяет одновременно несколько цветов палитры.
Заголовок:
Procedure SetAllPalette (var Palette)
Параметр Palette в заголовке процедуры описан как нетипизированный параметр. Первый байт этого параметра должен содержать длину N палитры, остальные n байты –номера вновь устанавливаемых цветов в диапазоне от 1 до MaxColors. Код «1» означает, что соответствующий цвет исходной палитры не меняется.
Рассмотрим реализацию предыдущей задачи с использованием процедуры SetAllPalette.
Program DemoSetPalette 2;
Uses CRT, Graph;
Var
GrDriver, GrMode, i: integer;
pal: array [0..16] of integer;
Begin
GrDriver: =Detect;
InitGraph (GrDriver, GrMode, 'C: |Bp| BGI');
randomize;
for i:=0 to 16 do
Pal [i]:= Random(16);
Pal [0]:= 15;
SetAllPalette (Pal);
SetBkColor (1);
for i:= 1 to 15 do
begin
SetColor(i);
Line (10, 10+10*i, 300, 10+10*i);
end;
readln;
CloseGraph;
End.
Особенностью использования процедуры SetAllPalette в таких конструкциях является то, что 0-цвет (по умолчанию) – цвет фона как бы выпадает из поля зрения. В программе используется строка SetBkColor (1) для лучшей демонстрации, поскольку по умолчанию цвет фона всегда 0 (черный) и линии с темными оттенками становятся невидимыми.
В модуле Graph определена константа
const
MaxColors= 15;
и тип
tupe
PalettePupe= record
Size: word; {количество цветов в палитре}
Colors: array [0..MaxColors] of ShortInt
{номера входящих в палитру цветов}.
end;
С помощью следующей программы можно вывести на экран номера всех возможных цветов из текущей палитры.
Program DemoSetPalette;
Uses CRT, Graph;
Var
GrDriver, GrMode, i: integer;
pal: PaletteTupe;
Begin
GrDriver: =Detect;
InitGraph (GrDriver, GrMode, 'C: |Bp| BGI');
GetDefaultPalette (Pal);
GetPalette (Pal);
CloseGraph;
for i:= 1 to 16 do
writeln (pal.colors[i]);
End.
В этой программе процедура SetPalette возвращает размер и цвета текущей палитры.
Ее заголовок:
Procedure GetPalette (var PaletteInfo: PaletteTupe);
Дата публикования: 2015-06-12; Прочитано: 255 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!