SetFillPattern процедурасы сурет үлгісін жəне штрихтау түсін анықтайды. Тақырыбы:
Procedure SetFillPattern(Pattern: FillPatternType; Color: Word); мұндағы Pattern – SetFillStyle процедурасында Fill = UserFill үшін сурет үлгісін анықтайтын FillPatternType типті өрнек; Color – толтыру түсі.
Сурет үлгісі 8x8 пикселден тұратын матрица түрінде беріледі жəне төмендегідей типтегі 8 байт жиым түрінде де берілуі мүмкін:
type FillPatternType = array [1..8] of Byte;
Осы байттардың кез келген разрядтары пикселдің жануын басқарады. Бірінші байт экранның бірінші жолының 8 пикселін, екінші байт – екінші жолдың 8 пикселін жəне т.с.с.
7.9-суретте толтырудың екі үлгісінің мысалы келтірілген. Суретте сызықшамен жанбайтын пиксел, ал тіктөртбұрышпен жанатын пиксел белгіленген. Əр 8 пикселге сəйкес байттың оналтылық коды келтіріледі.
Келесі программа осы үлгімен экранның екі тікбұрышты ауданын толтырады.
uses Graph, CRT;
const
pattl: FillPattern-
Type=($49,$92,$49,$92,$49,$92,$49,$92);
patt2: FillPattern-
Type=($00,$18,$24,$42,$42,$24,$18,$00);
var
206
d,r,e: Integer;
begin
{Графиканы іске қосамыз} d:=Detect; InitGraph(d,r,’’); e:=GraphResult;
if e <> grOk then WriteLn(GraphErrorMsg(e))
else
begin
if d=CGA then SetGraphMode (0); {CGA адаптері үшін түстерді орнатамыз}
SetFillStyle(UserFill,White); {Сол жақ жоғарғы квадрат}
SetFillPattern(Patt1,1); Bar(0,0,GetMaxX div 2, GetMaxY div 2);
{Оң жақ төменгі квадрат} SetFillPattern(Patt2,2);
Bar(GetMaxX div 2,GetMaxY div 2,GetMaxX,GetMaxY);
if ReadKey=#0 then d:=ord(ReadKey); CloseGraph
end
end.
7.9-сурет. Толтыру үлгілері жəне олардың кодтары
Егер процедураны шақырғанда түс коды дұрыс көрсетілмесе, онда процедура іске қосылмайды да, осыған дейін орнатылған толтыру үлгісі сақталады. Алдыңғы мысалда, CGA –адаптерінің жұмыс режимін орнататын