Procedure SetAllPalette (var Palette);
Palette параметрі процедура тақырыбында типтік емес па-раметр ретінде сипатталған. Бұл параметрдің бірінші байтында N палитра ұзындығы, қалған N байттар – (–1) мен MaxColors аралығындағы жаңадан орнатылатын түстер нөмірі. (–1) коды бастапқы палитраның сəйкес түсі өзгермейтіндігін білдіреді.
Келесі программада палитраның барлық түстері бір мезгілде өзгереді.
uses Graph, CRT;
var
Palette: array [0..MaxColors] of Shortint;
d,r,e,k: Integer;
begin
{Графиканы іске қосамыз} d:=Detect; InitGraph(d,r,''); e:=GraphResult;
if e <> grOk then WriteLn(GraphErrorMsg(e))
203
else
begin
{Қалың, біркелкі сызықтарды таңдаймыз} SetLineStyle(SolidLn, 0, ThickWidth);
{Сызықтарды қол жеткізуге болатын барлық түстермен шығарамыз}
for k:=1 to GetMaxColor do begin
SetColor(k);
Line(GetMaxX div 3,k*10,2*GetMaxX div 3,k*10)
end;
Palette[0]:=MaxColors; {Палитра көлемі} repeat {Палитраны ауыстыру цикл}
for k:=1 to MaxColors do Palette[k]:=Random(succ(MaxCoLors));
SetAllPalette(Palette)
until KeyPressed;
if ReadKey=#0 then k:=ord(ReadKey); CloseGraph
end
end.
GetPaletteSizeфункциясы палитра көлемі (қол жеткізуге бо-латын түстердің максимальді саны) жаылған Integer типті мəнді қайтарады. Тақырыбы: