Informatiile referitoare la culori sunt cotinute intr-un tabel, numit
paletaSstructura paletei este descrisa te tipul predefinit PaletteType astfel: m4e8eh
Const
MaxColors=15;
Type PaletteType=record
Size:byte;
Colors:arraya0..MaxColorsi of shortint;
End;
Campul calificat cu size continenumarul culori paletei, iar campurile
calificate de colors contin codurile corespunzatoare diferitelor culori existente.
Paleta implicita este initializata de procedura InitGraph; numarul elementelor
paletei este in funtie de placa grafica utilizata.
10.1. Proceduri si functii
GetDefaultPalette
Procedura GetDefaultPalette incarca intr-o variabila (de tip predefinit
PaletteType) paleta implicita; acesta paleta implicita a fost initializata de
procedura InitGraph. Procedura este definita astfel :
Procedure GetDefaultPalette(var pal:PaletteType);
Pal desemneaza variabila in care este incarcata paleta implicita.
Campul pal.size contine numarul culorilor ce pot fi utilizate. Campul
pal.colors(I) contine codul crespunzator culori I.
SetColor
Procedura SetColor permite stabilirea culori scrisullui. Procedura este definita
astfel:
Procedure SetColor(colnum:word);
Colnum este indexul din paleta al culori selectate.
GetBkColor
Functia GetBkColor returneaza valoarea utilizata la ultimul apel al proceduri
SetColor. Functia este definita astfel:
Function GetBkColor:word;
GetColor
Functia GetColor returneaza valoarea utilizata la ultimul apel al procedurii
SetColor. Functia este definita astfel:
Function GetColor:word;
10.2. Aplicatie
Programul palete realizeaza lucrul cu palete de culori setarile paletelor
si schimbarea culorilor unui text si a fundalului.
Program palete;
Usese Crt,Graph;
Var gd,gm,i:integer;
Color:word;
MyPal,OldPal,Palette:PaletteType;
Begin
Randomize;
Gd:=Detect;
InitGraph(gd,gm,`c:\bp\bgi`);
If GraphResult<0 then
Halt(1);
GetDefaultPalette(OldPal);
MyPal:=OldPal;
Aafiseaza cevaS for i:=0 to MyPal.Size-1 do begin
SetColor(i);
OutTextXY(10,i*10`******Se schimba culorile******`);
OutTextXY(400,i*10`***Turbo Pascal***`);
End;
Repeat ASchimba paleta de culori pana se apasa o tastaS
With MyPal do
ColorsaRandom(Size)i:=Random(Size+1);
SetAllPalette(MyPal);
Until KeyPressed;
SetAllPalette (OldPal); Arestaurarea paletei originaleS
ClearDevice;
OutTextXY(10,10,`apsa<Enter>…`):