7.4 Түстерді басқару SetColor процедурасы шығарылатын түзулер мен символ-дардың ағымдағы түсін тағайындайды. Тақырыбы:
Procedure SetColor(Color: Word); мұндағы Color – ағымдағы түс.
Graph модулінде, түстерді беру үшін дəл CRT модуліндегідей тұрақтылар анықталған.
GetColorфункциясы ағымдағы түс коды жазылған Word типті мəнді қайтарады. Тақырыбы:
198
Function GetColor: Word ;
GetMaxColor функциясы SetColor процедурасында қолдануға болатын ең жоғарғы түс коды жазылған Word типті мəнді қайтарады. Тақырыбы:
Function GetMaxColor: Word;
SetBkColor процедурасы. Фон түсін орнатады. Тақырыбы:
Procedure SetBkColor(Color: Word)
мұндағы Color – фон түсі.
Фоны тек қара түсті бола алатын мəтіндік режимге қарағанда, графикалық режимде фон кез келген түсте болуы мүмкін. Жаңа фон түсін орнату, бірден графикалық экран түсін өзгертеді. Бұл бір бейненің екі бөлігінің фон түсі екі түрлі болмайтындығын білдіреді. CGA – адаптері үшін, жоғары мүмкіндікті режимде фон түсін орнату, екпінді пикселдер түсін өзгертеді. Сіз фон түсін 0 (Black) өзгеше кез келген түске ауыстырғаннан кейін, 0 түсті қара түс ретінде қолдана алмайсыз. Себебі, Graph модулі 0 түсті фон түсі ретінде қабылдайды да, 0 түсті фон түсіне алмастырылады. Сонымен, егер сіз фон түсін қарадан басқа түске ауыстырсаңыз, бастапқы қара түсті қайтара алмайсыз!
Егер сіздің компьютеріңіз түсті экранмен жабдықталған болса, онда келесі программа SetBkColor процедурасының жұ-мысын көрнекі түрде көрсетеді. Программа бірінің ішіне бірі салынған он тікбұрыштар салады да, фонның түсін ауыстырады. Программадан шығу үшін кез келген пернеге басыңыз.
uses Graph, CRT;
const
NC:array [0..15]of String[12]= ('Black','Blue','Green','Cyan','Red','Magenta',
'Brown','LightGray','DarkGray','LightBlue', 'LightGreen1,'LightCyan1,'LightRed',
'LightMagenta','Yellow','White'); var
d,r,e,k,color,dx,dy: Integer; begin
{Графиканы іске қосамыз} d:=Detect; InitGraph(d,r,'');
199
e:=GraphResult;
if e <> grOK then
WriteLn(GraphErrorMsg(e))
else
begin
{Экран ортасына мəтін шығарамыз} OutTextXY(200,GetMaxY div 2,'BACKGROUND
COLOR');
dx:=GetMaxX div 30; {Ұзындықтың өсімшесі} dy:=GetMaxY div 25; {Биіктіктің өсімшесі} for k:=0 to 9 do{ 10 тікбұрыш шығарамыз}
Rectangle(k*dx,k*dy,GetMaxX-k*dx,GetMaxY-k*dy);
color:=black; {Фонның бастапқы түсі} repeat {Фонды өзгерту циклі}
SetBkColor(color);
SetBkColor(color);
SetFillStyle(0,Color);
SetBkColor(color);
Bar(345,GetMaxY div 2,440,GetMaxY div
2+8);
SetBkColor(color);
OutTextXY(345,GetMaxY div 2,NC[color]);
SetBkColor(color);
delay(1000);
SetBkColor(co lor);
inc(color);
if color > White then
color:=Black
until KeyPressed;
if ReadKey=#0 then
k:=ord(ReadKey);
CloseGraph
end
end.
GetBkColorфункциясы ағымдағы фон түсі жазылған, Word типті мəнді қайтарады. Тақырыбы:
Function GetBkColor: Word;