Ìîäóëü Graph ðåàëèçóåò ïîëíóþ áèáëèîòåêó èç áîëåå ÷åì 50
ãðàôè÷åñêèõ ïðîãðàìì - îò âûçîâîâ ïðîöåäóð è ôóíêöèé âûñîêîãî
óðîâíÿ, êàê, íàïðèìåð, SetViewPort, Bàr3D, DràwPoly, äî ïðîãðàìì,
îðèåíòèðîâàííûõ íà ðàáîòó ñ áèòàìè, òàêèõ, êàê GetImage èëè
ÐutImage. Ïîääåðæèâàåòñÿ íåñêîëüêî âèäîâ çàêðàøèâàíèÿ è òèïîâ ëè-
íèé, è èìååòñÿ íåñêîëüêî øðèôòîâ, êîòîðûå ìîæíî èçìåíÿòü ïî âåëè-
÷èíå, âûðàâíèâàòü è îðèåíòèðîâàòü ãîðèçîíòàëüíî èëè âåðòèêàëüíî.
Äëÿ êîìïèëÿöèè ïðîãðàììû, èñïîëüçóþùåé ìîäóëü Gràph, âàì íå
ïîòðåáóåòñÿ íèêàêèõ âíåøíèõ ôàéëîâ (êðîìå, êîíå÷íî, èñõîäíîãî
òåêñòà âàøåé ïðîãðàììû, êîìïèëÿòîðà è äîñòóïà ê ñòàíäàðòíûì ìîäó-
ëÿì â áèáëèîòåêå èñïîëíÿþùåé ñèñòåìû).
Òàáëèöà 19.1
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Òèï ïðîãðàììû ³ Áèáëèîòåêà ³ Èìÿ ìîäóëÿ Graph ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Ðåàëüíûé ðåæèì ³ TURBO.TPL ³ GRAPH.TPU ³
³ Çàùèùåííûé ðåæèì ³ TPP.TPL ³ GRAPH.TPP ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Äëÿ çàïóñêà ïðîãðàììû, èñïîëüçóþùåé ìîäóëü Gràðh, êðîìå âà-
øåé ïðîãðàììû ñ ðàñøèðåíèåì .EXE âàì ïîòðåáóþòñÿ îäèí èëè áîëåå
ãðàôè÷åñêèõ äðàéâåðîâ (ñì. äàëåå ôàéëû .BGI). Êðîìå òîãî âàì ïîò-
ðåáóåòñÿ òàêæå îäèí èëè áîëåå ôàéëîâ øðèôòîâ (.CÍR), åñëè â âàøåé
ïðîãðàììå èñïîëüçóþòñÿ êàêèå-ëèáî øðèôòû.
Ïðèìå÷àíèå:  ñîîòâåòñòâèè ñ ëèöåíçèîííûìè óñëîâèÿìè
âû ìîæåòå ðàñïðîñòðàíÿòü ôàéëû .CHR è .BGI íàðÿäó ñî ñâîèìè
ïðîãðàììàìè.
Äðàéâåðû
ÄÄÄÄÄÄÄ
Äëÿ ïåðå÷èñëåííûõ íèæå ãðàôè÷åñêèõ àäàïòåðîâ è ïîëíîñòüþ
ñîâìåñòèìûõ ñ íèìè ïðåäóñìîòðåíû ñëåäóþùèå ãðàôè÷åñêèå äðàéâåðû:
CGA Íårcules
ÌÑGA
AT&T 400
EGA 3270 PC
VGA IBM 8514
Êàæäûé äðàéâåð ñîäåðæèò âûïîëíÿåìûé êîä è äàííûå è õðàíèòñÿ
â îòäåëüíîì ôàéëå íà äèñêå. Âî âðåìÿ ðàáîòû ïðîöåäóðà InitGraph
èäåíòèôèöèðóåò ãðàôè÷åñêóþ
àïïàðàòóðó è ïðîèçâîäèò çàãðóçêó è
èíèöèàëèçàöèþ ñîîòâåòñòâóþùåãî
ãðàôè÷åñêîãî äðàéâåðà, ïåðåâîäèò
ñèñòåìó â ãðàôè÷åñêèé ðåæèì, à çàòåì âîçâðàùàåò óïðàâëåíèå âûçû-
âàþùåé ïðîãðàììå. Ïðîöåäóðà CloseGraph
âûãðóæàåò äðàéâåð èç ïàìÿ-
òè
è âîññòàíàâëèâàåò ïðåäûäóùèé
âèäåîðåæèì. Ñ ïîìîùüþ ïðîãðàìì
RåstoreCrtMode è SetGraphMode âû
ìîæåòå ïåðåêëþ÷àòüñÿ ìåæäó òåêñ-
òîâûì è ãðàôè÷åñêèì ðåæèìîì. Ñì. Ãëàâó 1 â "Ñïðàâî÷íîì ðóêîâîäñ-
òâå ïðîãðàììèñòà".
Ìîäóëü Gràph ìîæåò òàêæå ðàáîòàòü
íà êîìïüþòåðàõ ñ äâóìÿ ìî-
íèòîðàìè. Ïðè èíèöèàëèçàöèè ìîäóëÿ
Graph ñ ïîìîùüþ
ïðîöåäóðû
InitGraph äëÿ ãðàôè÷åñêîãî äðàéâåðà
è òðåáóåìîãî ðåæèìà áóäåò
âûáðàí íóæíûé ìîíèòîð. Ïðè çàâåðøåíèè
ðàáîòû ãðàôè÷åñêîé ïðîãðàì-
ìû ïðåäûäóùèé âèäåîðåæèì áóäåò
âîññòàíîâëåí. Åñëè äëÿ ãðàôè÷åñêîé
àïïàðàòóðû ñ äâóìÿ ìîíèòîðàìè
òðåáóåòñÿ àâòîìàòè÷åñêîå ðàñïîçíà-
âàíèå, òî ïðîöåäóðà InitGraph âûáåðåò ìîíèòîð è ãðàôè÷åñêóþ ïëà-
òó,
ïðè êîòîðîé áóäåò ïîëó÷àòüñÿ
íàèëó÷øåå êà÷åñòâî âûâîäèìîé
ãðàôè÷åñêîé èíôîðìàöèè.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
Äðàéâåð ³ Àïïàðàòóðà ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
CGA.BGI ³ Äðàéâåð äëÿ
àäàïòåðîâ CGA, MCGA ôèðìû IBM. ³
³
EGAVGA.BGI ³ Äðàéâåð äëÿ àäàïòåðîâ
EGA, VGA ôèðìû IBM. ³
³
HERC.BGI ³ Äðàéâåð äëÿ
ìîíîõðîìíîãî àäàïòåðà Hercules ôèð-³
³ ³ ìû IBM. ³
³
ATT.BGI ³ Äðàéâåð äëÿ
AT&T 6300 (400 ñòðîê). ³
³ PC3270.BGI ³ Äðàéâåð äëÿ IBM 3270 ÐÑ. ³
³
IBM8514.BGI ³ Äðàéâåð äëÿ IBM 8514. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Borland Pascal ïîääåðæèâàåò
ãðàôè÷åñêóþ ïëàòó IBM 8514, êî-
òîðàÿ ïðåäñòàâëÿåò ñîáîé íîâóþ
ãðàôè÷åñêóþ ïëàòó ñ âûñîêèì ðàçðå-
øåíèåì, ïîçâîëÿþùóþ ïîëó÷èòü ðàçðåøàþùóþ ñïîñîáíîñòü äî 1024õ768
òî÷åê
è ïàëèòðó, ñîäåðæàùóþ
256 îòòåíêîâ èç 256 öâåòîâ. Ôàéë
äðàéâåðà äëÿ ýòîé ãðàôè÷åñêîé ïëàòû
íàçûâàåòñÿ IBM8514.BGI.
Ãðàôè÷åñêàÿ ïëàòà IBM 8514 íå ìîæåò ïðàâèëüíî
ðàñïîçíàâàòüñÿ
Borland Pascal ïðè àâòîìàòè÷åñêîì îáíàðóæåíèè (îíà áóäåò
ðàñïîç-
íàâàòüñÿ àëãîðèòìàìè àâòîîáíàðóæåíèÿ,
êàê ïëàòà VGA). Òàêèì îáðà-
çîì,
÷òîáû èñïîëüçîâàòü ïëàòó IBM
8514, ïåðåìåííîé GraphDriver
ïðè âûçîâå InitGraph íóæíî
ïðèñâîèòü çíà÷åíèå IBM8514
(êîòîðîå
îïðåäåëåíî â ìîäóëå Graph). Ïðè ðàáîòå ñ ïëàòîé IBM 8514 íå ñëå-
äóåò èñïîëüçîâàòü ñ InitGraph
DetectGraph èëè DETECT (åñëè òîëüêî
âû íå õîòèòå ýìóëèðîâàòü ðåæèì VGA).
Äëÿ ïëàòû IBM 8514 ïîääåðæèâàþòñÿ
ñëåäóþùèå ðåæèìû: IBM8514LO
(640õ480 ýëåìåíòîâ èçîáðàæåíèÿ) è
IBM8514HI (1024õ768 ýëåìåíòîâ
èçîáðàæåíèÿ). Îáå êîíñòàíòû ðåæèìà
îïðåäåëåíû â èíòåðôåéñíîé ÷àñ-
òè
Äëÿ îïðåäåëåíèÿ öâåòîâ â ïëàòå
IBM 8514 èñïîëüçóþòñÿ òðè
6-áèòîâûõ çíà÷åíèÿ. Äëÿ êàæäîãî
îïðåäåëÿåìîãî öâåòà èìåþòñÿ 6-áè-
òîâûå êîìïîíåíòû Red (êðàñíûé), Green
(çåëåíûé) è Blue (ãîëóáîé).
Äëÿ òîãî, ÷òîáû ïðè ðàáîòå ñ ãðàôè÷åñêîé ïëàòîé IBM 8514 ïîëüçî-
âàòåëü ìîã çàäàâàòü öâåòà, â
áèáëèîòåêó BGI äîáàâëåíà íîâàÿ ïðîã-
ðàììà. Ýòà ïðîãðàììà îïðåäåëÿåòñÿ â ìîäóëå GRAPH.TPU ñëåäóþùèì
îáðàçîì
procedure
SetRGBPalette(ColorNum, Red, Green, Blue: Word);
Àðãóìåíò ColorNum çàäàåò çàïèñü
ïàëèòðû, êîòîðóþ íóæíî çàãðó-
çèòü. Ýòîò àðãóìåíò ïðåäñòàâëÿåò ñîáîé
öåëîå çíà÷åíèå â äèàïàçîíå
îò 0 äî 255 (äåñ.). Àðãóìåíòû Red, Green
è Blue îïðåäåëÿþò êîìïî-
íåíòû
öâåòîâ â çàïèñè ïàëèòðû.
Èñïîëüçóåòñÿ òîëüêî ìëàäøèé áàéò
ýòèõ çíà÷åíèé è òîëüêî 6 ñòàðøèõ áèòîâ
ýòîãî áàéòà çàãðóæàþòñÿ â
ïàëèòðó.
Äðóãèå ïðîãðàììû, ìîäèôèöèðóþùèå ïàëèòðó (SetAllPalette,
SetPalette, GetPalette), ïðè ðàáîòå ñ
ãðàôè÷åñêîé ïëàòîé IBM 8514
èñïîëüçîâàòü íå ñëåäóåò.
Äëÿ ñîâìåñòèìîñòè ñ ãðàôè÷åñêèìè
àäàïòåðàìè ôèðìû IBM äðàéâå-
ðû ôîðìàòà BGI îïðåäåëÿþò äëÿ ïåðâûõ
16 öâåòîâ ïàëèòðû IBM 8514
çíà÷åíèÿ öâåòîâ, ïðèíÿòûå ïî óìîë÷àíèþ
äëÿ àäàïòåðîâ EGA/VGA. Ýòè
çíà÷åíèÿ ìîãóò èñïîëüçîâàòüñÿ â
íåèçìåíåííîì âèäå èëè ìîäèôèöèðî-
âàòüñÿ ñ ïîìîùüþ ïðîöåäóðû
SetGRBPalette.
Ïî ñîãëàøåíèþ âåðõíèé ëåâûé óãîë
ýêðàíà èìååò êîîðäèíàòó
(0,0). Ó áîëåå ïðàâîãî ñòîëáöà êîîðäèíàòà õ áîëüøå, ó áîëåå íèæ-
íåé ñòðîêè áîëüøå êîîðäèíàòà y. Òî
åñòü êîîðäèíàòà õ óâåëè÷èâàåò-
ñÿ ïðè ïåðåìåùåíèè âïðàâî, à
êîîðäèíàòà y - ïðè ïåðåìåùåíèè âíèç.
Òàêèì îáðàçîì êîîðäèíàòû êàæäîãî èç
÷åòûðåõ óãëîâ è êîíêðåòíîé
òî÷êè (ñåðåäèíû ýêðàíà) áóäóò
âûãëÿäåòü ñëåäóþùèì îáðàçîì:
(0,0) (319,0)
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ (159,99) ³
³ . ³
³ ³
³ ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
(0,199) (319,199)
Ðèñ. 19.1 Ýêðàí ñ êîîðäèíàòàìè
xy.
Ïîíÿòèå òåêóùåãî óêàçàòåëÿ èñïîëüçóåòñÿ âî ìíîãèõ ãðàôè÷åñ-
êèõ ñèñòåìàõ. Ïîíÿòèå òåêóùåãî óêàçàòåëÿ àíàëîãè÷íî
ïîíÿòèþ êóð-
ñîðà äëÿ òåêñòîâîãî ðåæèìà, çà
èñêëþ÷åíèåì òîãî, ÷òî òåêóùèé óêà-
çàòåëü íåâèäèì.
Write('ABC');
 òåêñòîâîì ðåæèìå ïðåäøåñòâóþùèé îïåðàòîð Write îñòàâèò
êóðñîð â êîëîíêå, íåïîñðåäñòâåííî ñëåäóþùèì çà áóêâîé C. Åñëè
áóêâà C áûëà ââåäåíà â êîëîíêå
80, òî êóðñîð ïåðåéäåò íà êîëîíêó
1 ñëåäóþùåé ñòðîêè. Åñëè áóêâà c áûëà
ââåäåíà â ïîçèöèè 80 ñòðîêè
25, òî ïðîèçîéäåò ïðîëèñòûâàíèå
(ïðîêðóòêà) ýêðàíà ââåðõ
íà 1
ñòðîêó è êóðñîð áóäåò íàõîäèòñÿ â 1
ïîçèöèè 25 ñòðîêè.
MoveTo(0,0);
LineTo(20,20)
 ãðàôè÷åñêîì ðåæèìå äàííûé
îïåðàòîð LinåÒî îñòàâèò òåêóùèé
óêàçàòåëü â ïîñëåäíåé çàäàííîé òî÷êå
(20,20). Åñëè äåéñòâóåò ðå-
æèì îòñå÷åíèÿ, òî ðåàëüíî âûâîäèìàÿ ïðÿìàÿ áóäåò îòñå÷åíà
äî òå-
êóùåé òî÷êè. Çàìåòèì, ÷òî òåêóùèé óêàçàòåëü íèêîãäà íå îòñåêàåò-
ñÿ.
Êîìàíäà ÌîvåÒî ÿâëÿåòñÿ
ýêâèâàëåíòîì êîìàíäû GotoXY. Åäèíñ-
òâåííîå åå íàçíà÷åíèå - ýòî
ïåðåìåùåíèå òåêóùåãî óêàçàòåëÿ. Ïåðå-
ìåùåíèå òåêóùåãî óêàçàòåëÿ ìîæåò èñïîëüçîâàòüñÿ òîëüêî â ñëåäóþ-
ùèõ êîìàíäàõ, èñïîëüçóþùèõ òåêóùèé óêàçàòåëü: MoveTo,
InitGraph,
MoveRel, LineTo, LineRel, OutText,
SetGraphMode, ClearDevice,
SetViewPort è ClearViewPort. Ïîñëåäíèå 5 èç íèõ ïåðåìåùàþò òåêó-
ùèé óêàçàòåëü â òî÷êó (0,0).
 ãðàôè÷åñêîì ðåæèìå äëÿ âûâîäà
òåêñòà èñïîëüçóåòñÿ øðèôò ñ
ðàñòðîì 8õ8 è íåñêîëüêî âåêòîðíûõ
øðèôòîâ. Ðàñòðîâûé ñèìâîë çàäà-
åòñÿ ñ ïîìîùüþ ìàòðèöû ýëåìåíòîâ
èçîáðàæåíèÿ. Âåêòîðíûé øðèôò çà-
äàåòñÿ ðÿäîì âåêòîðîâ, êîòîðûå
óêàçûâàþò ãðàôè÷åñêîé ñèñòåìå, êàê
ðèñîâàòü øðèôò.
Ïðåèìóùåñòâî èñïîëüçîâàíèÿ
âåêòîðíûõ øðèôòîâ ñòàíîâèòñÿ î÷å-
âèäíûì, êîãäà âû íà÷èíàåòå
ðèñîâàòü áîëüøèå ñèìâîëû. Ïîñêîëüêó
øòðèõîâîé øðèôò çàäàåòñÿ
âåêòîðàìè, òî ïðè óâåëè÷åíèè øðèôòà êà-
÷åñòâî è ðàçðåøåíèå îñòàþòñÿ, òåì íå
ìåíåå, õîðîøèìè.
Êîãäà óâåëè÷èâàåòñÿ ðàñòðîâûé øðèôò, òî ìàòðèöà óìíîæàåòñÿ
íà ìàñøòàáíûé êîýôôèöèåíò, à êîãäà ýòîò ìàñøòàáíûé êîýôôèöèåíò
óâåëè÷èâàåòñÿ, ðàçðåøåíèå ó ñèìâîëîâ
ñòàíîâèòñÿ áîëåå ãðóáûì. Äëÿ
ìàëåíüêèõ øðèôòîâ ðàñòðîâûé øðèôò
äîëæåí áûòü äîñòàòî÷íî ïðèåìëå-
ìûì,
íî äëÿ áîëüøèõ øðèôòîâ âû,
âåðîÿòíî, çàõîòèòå âûáðàòü âåê-
òîðíûé øðèôò.
Âûðàâíèâàíèå ãðàôè÷åñêîãî òåêñòà
óïðàâëÿåòñÿ ïðîöåäóðîé
SetTextJustify. Ìàñøòàáèðîâàíèå è âûáîð øðèôòà îñóùåñòâëÿåòñÿ ñ
ïîìîùüþ ïðîöåäóðû SetTextStyle.
Ãðàôè÷åñêèé òåêñò âûâîäèòñÿ ñ ïî-
ìîùüþ
ïðîöåäóð ÎutText èëè ÎutTextÕY.
Çàïðîñ î òåêóùèõ óñòàíîâ-
ëåííûõ äëÿ òåêñòà ïàðàìåòðàõ
âûïîëíÿåòñÿ ñ ïîìîùüþ îáðàùåíèÿ
ê
ïðîöåäóðå GetTextSettings. Âåêòîðíûå
øðèôòû õðàíÿòñÿ êàæäûé â îò-
äåëüíîì ôàéëå íà äèñêå è äîëæíû
ïðèñóòñòâîâàòü òàì âî âðåìÿ ðàáî-
òû (ïðè âûçîâå ïðîöåäóðû
SetTextStyle). Ðàçìåð âåêòîðíîãî øðèôòà
ìîæíî íàñòðîèòü ñ ïîìîùüþ ïðîöåäóðû
SetUserCharSize. Ôàéëû øðèô-
òîâ (êîòîðûå èìåþò ðàñøèðåíèå .CHR)
ìîãóò çàãðóæàòüñÿ ñ äèñêà àâ-
òîìàòè÷åñêè ìîäóëåì Graph, èëè èõ ìîæíî êîìïîíîâàòü ñ ïðîãðàììîé
ïîëüçîâàòåëÿ èëè çàãðóæàòü è "ðåãèñòðèðîâàòü" ñ ïîìîùüþ
ìîäóëÿ
Graph.
Äëÿ ïðåîáðàçîâàíèÿ ôàéëà øðèôòà
(èëè ëþáîãî äðóãîãî ïðåäíàç-
íà÷åííîãî äëÿ ýòîé öåëè äâîè÷íîãî ôàéëà
äàííûõ) â ôàéë .OBJ, êî-
òîðûé ìîæíî êîìïîíîâàòü ñ ìîäóëåì èëè
ïðîãðàììîé ñ ïîìîùüþ äèðåê-
òèâû êîìïèëÿòîðà $L
â Borland Pascal ïðåäóñìîòðåíà
ñïåöèàëüíàÿ
óòèëèòà BINOBJ.EXE. Ïðè ýòîì ñòàíîâèòñÿ âîçìîæíûì ïîìåñòèòü âñå
ôàéëû øðèôòîâ â
âûïîëíÿåìûé ôàéë .EXE (ñì. êîììåíòàðèè
â íà÷àëå
ïðèìåðà ïðîãðàììû BGILINK.PAS íà
äèñòðèáóòèâíîì äèñêå).
Äëÿ âû÷åð÷èâàíèÿ è
çàêðàøèâàíèÿ ãðàôè÷åñêèõ èçîáðàæåíèÿ,
âêëþ÷àÿ òî÷êè, ïðÿìûå, îêðóæíîñòè,
äóãè, ýëëèïñû, ïðÿìîóãîëüíèêè,
ìíîãîóãîëüíèêè, øòðèõîâêó, òðåõìåðíóþ
øòðèõîâêó è ñåêòîðû, èìååò-
ñÿ öåëûé ðÿä îáåñïå÷èâàþùèõ
ïðîãðàìì. Äëÿ óïðàâëåíèÿ âèäîì ëèíèè
- áóäåò îíà òîíêîé èëè òîëñòîé, íåïðåðûâíîé èëè ñîñòîÿùåé èç òî-
÷åê,
èëè æå ïîñòðîåííîé ïî âàøåìó ñîáñòâåííîìó îáðàçöó - ìîæíî
èñïîëüçîâàòü ïðîöåäóðó SetLineStyle.
Äëÿ çàêðàøèâàíèÿ îáëàñòè
èëè ìíîãîóãîëüíèêà ïåðåñåêàþùåéñÿ
øòðèõîâêîé èëè ÷åì-ëèáî áîëåå ñëîæíûì
ìîæíî èñïîëüçîâàòü ïðîöåäó-
ðû SetFillStyle, SetFloodPattern,
FillPoly è FloodFill.
Ïðîöåäóðà ViewPoint ïîçâîëÿåò
âñåì êîìàíäàì âûâîäà ðàáîòàòü
â ïðÿìîóãîëüíîé îáëàñòè ýêðàíà. Ãðàôèêè,
ïðÿìûå è äðóãèå ãðàôè-
÷åñêèå èçîáðàæåíèÿ (âåñü
ãðàôè÷åñêèé âûâîä) ñâÿçûâàåòñÿ
ñ îá-
ëàñòüþ ïðîñìîòðà, ïîêà ýòà îáëàñòü íå èçìåíÿåòñÿ. Ïðåäóñìîòðåíû
ïðîãðàììû äëÿ î÷èñòêè îáëàñòè
ïðîñìîòðà è ñ÷èòûâàíèÿ åå òåêóùèõ
îïðåäåëåíèé. Åñëè çàäàí ðåæèì îòñå÷åíèÿ, òî âåñü ãðàôè÷åñêèé âû-
âîä îòñå÷åòñÿ äî òåêóùåé òî÷êè. Çàìåòèì,
÷òî òåêóùèé óêàçàòåëü
íèêîãäà íå îòñåêàåòñÿ.
Äëÿ ñ÷èòûâàíèÿ è âûâîäà ýëåìåíòîâ èçîáðàæåíèÿ ïðåäóñìîòðåíû
ïðîöåäóðû GetPixel è Putpixel. ×òîáû ñîõðàíèòü è âîññòàíîâèòü íà
ýêðàíå ïðÿìîóãîëüíóþ
îáëàñòü, ìîæíî èñïîëüçîâàòü ïðîöåäóðû
GetImage è PutImage. Îíè îáåñïå÷èâàþò ïîëíîå âûïîëíåíèå îïåðàöèé
ïðîöåäóðû ÂitÂlt (íîðìàëüíîå, õîr, îr,
ànd, nît).
Èìååòñÿ ìíîãî äðóãèõ
ïîääåðæèâàþùèõ ïðîãðàìì, âêëþ÷àÿ ïîä-
äåðæêó äëÿ íåñêîëüêèõ
ãðàôè÷åñêèõ ñòðàíèö (òîëüêî äëÿ àäàïòåðîâ
EGA,
VGA è Íårcules; ýòî îñîáåííî
ïîëåçíî ïðè èñïîëüçîâàíèè â
ìóëüòèïëèêàöèè), ïàëèòðû, öâåòà è òàê
äàëåå.
Âíóòðåííèå îøèáêè ìîäóëÿ
Graph âîçâðàùàþòñÿ ôóíêöèåé
GraphResult. Ýòà ôóíêöèÿ âîçâðàùàåò
êîä îøèáêè, ïîêàçûâàþùèé ñîñ-
òîÿíèå ïîñëåäíåé ãðàôè÷åñêîé
îïåðàöèè. Êîäû âîçâðàòà
ïðèâåäåíû
â ðàçäåëå ïî GraphResult â Ãëàâå 1
("Ñïðàâî÷íèê ïî áèáëèîòåêè")
"Ñïðàâî÷íîãî ðóêîâîäñòâà
ïðîãðàììèñòà".
Çíà÷åíèå êîäà âîçâðàòà äëÿ ôóíêöèè GraphResult óñòàíàâëèâà-
åòñÿ ñëåäóþùèìè ïðîöåäóðàìè:
DetectGraph SetTextStile SetAllPalette
InitGraph SetGraphMode SetFillPattern
FloodFill CloseGraph SetFillStyle
FillPoly
GetGraphMode
SetGraphBufSize
DrawPoly ImageSize SetGraphMode
Bar InstallUserDriver SetLineStyle
Bàr3D InstallUserFont SetPalette
PieSlice RegisterBGIDriver SetTextJustify
ClearViewPort RegisterGBIFont
Çàìåòèì, ÷òî ôóíêöèÿ GraphResult
ïîñëå îáðàùåíèÿ ê íåé ñáðà-
ñûâàåò êîä îøèáêè â 0. Òàêèì îáðàçîì, ïîëüçîâàòåëü äîëæåí ñîõðà-
íèòü çíà÷åíèå êîäà îøèáêè âî âðåìåííîé
ïåðåìåííîé è çàòåì ïðîâå-
ðèòü åãî.
Ïðèâåäåì ïðèìåð ïðîñòîé
ãðàôè÷åñêîé ïðîãðàììû:
1 program GraphTest;
2 uses
3 Graph;
4 var
5 GraphDriver : integer;
6 GraphMode : integer;
7 ErrorCode : integer;
8 begin
9 GraphDriver := Detect;
{ Óñòàíîâèòü ôëàã: âûïîëíèòü
ðàñïîçíàâàíèå }
10
InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS');
11 ErrorCode := GraphResult;
12 if ErrorCode <> grOk then
{ îøèáêà? }
13 begin
14 Writeln('Îøèáêà ãðàôèêè: ',GraphErrorMsg(ErrorCode);
15
Writeln('Ïðîãðàììà àâàðèéíî çàâåðøèëà ðàáîòó...');
16 Halt(1);
17 end;
18 Rectangle(0, 0, GetMaxX, GetMaxY); { íàðèñîâàòü ðàìêó
ðàçìåðîì â ýêðàí }
19 SetTextJustify(CenterText, CenterText); { öåíòðèðîâà-
íèå òåêñòà }
20 SetTextStyle(DefaultFont, HorizDir, 3);
21 OutTextXY(GetMaxX div 2, GetMaxY div 2, { öåíòð ýêðàíà }
22 'Ãðàôè÷åñêèé èíòåðôåéñ ôèðìû Borland (BGI)');
23 Readln;
24 CloseGraph;
25 end. { GraphTest }
Ïðîãðàììà íà÷èíàåòñÿ ñ îáðàùåíèÿ
ê ïðîöåäóðå InitGraph, êî-
òîðàÿ àâòîìàòè÷åñêè ïðîâåðÿåò íàëè÷èå
àïïàðàòóðû è çàãðóæàåò ñî-
îòâåòñòâóþùèé ãðàôè÷åñêèé
äðàéâåð (íàõîäÿùèéñÿ â
êàòàëîãå C:
DRIVERS). Åñëè ãðàôè÷åñêàÿ àïïàðàòóðà
íå ðàñïîçíàíà èëè â ïðîöåñ-
ñå èíèöèàëèçàöèè ïðîèçîøëà
îøèáêà, òî íà ýêðàí âûâîäèòñÿ ñîîáùå-
íèå îá îøèáêå è ïðîãðàììà ïðåêðàùàåò
ðàáîòó.  ïðîòèâíîì ñëó÷àå
âäîëü êðàåâ ýêðàíà ðèñóåòñÿ
ïðÿìîóãîëüíèê è â öåíòðå ýêðàíà âûâî-
äèòñÿ òåêñò.
Ïëàòà AT&T 400 èëè IBM 8514 íå ðàñïîçíàåòñÿ àâòîìàòè÷åñêè.
Òåì íå ìåíåå, âû ìîæåòå ïîëüçîâàòüñÿ
äðàéâåðîì ãðàôèêè AT&T ïóòåì
îòìåíû àâòîìàòè÷åñêîé ïðîâåðêè,
ïåðåñûëêè èñïîëíÿåìîãî êîäà äðàé-
âåðà AT&T ïðîöåäóðå InitGraph è
óñòàíîâêè äîïóñòèìîãî ãðàôè÷åñêî-
ãî ðåæèìà. Çàìåíèòå 8 è 9 ñòðîêó â ïðåäûäóùåì ïðèìåðå ñëåäóþùèìè
òðåìÿ ñòðîêàìè:
GraphDriver := ATT400;
GraphMode := ATT400Hi;
InitGraph(GraphDriver, GraphMode,
'C:\BP\BGI');
Ýòî óêàæåò ãðàôè÷åñêîé
ñèñòåìå íà íåîáõîäèìîñòü çàãðóçêè
äðàéâåðà óñòðîéñòâà AT&T400,
ðàñïîëîæåííîãî â êàòàëîãå C:\BP\BGI,
è óñòàíîâèò ãðàôè÷åñêèé ðåæèì 640 íà
400.
Ïðèâåäåì åùå îäèí ïðèìåð, êîòîðûé ïîêàçûâàåò, êàê ìîæíî ïå-
ðåêëþ÷àòüñÿ ìåæäó ãðàôè÷åñêèì è
òåêñòîâûì ðåæèìàìè:
1 program GraphTest;
2 uses
3 Graph;
4 var
5 GraphDriver : integer;
6 GraphMode : integer;
7 ErrorCode : integer;
8 begin
9 GraphDriver := Detect;
{ Óñòàíîâèòü ôëàã: âûïîëíèòü
ðàñïîçíàâàíèå }
10
InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS');
11 ErrorCode := GraphResult;
12 if ErrorCode <> grOk then
{ îøèáêà? }
13 begin
14 Writeln('Îøèáêà ãðàôèêè: ',GraphErrorMsg(ErrorCode);
15
Writeln('Ïðîãðàììà àâàðèéíî çàâåðøèëà ðàáîòó...');
16 Helt(1);
17 end;
18 OutText('Ãðàôè÷åñêèé ðåæèì. Íàæìèòå <RETURN>');
19 Readln;
20 RestoreCrtMode;
21 Write('Òåêñòîâûé ðåæèì. Íàæìèòå <RETURN>');
22 Readln;
23 SetGraphMode(GraphMode);
24 OutText('Ñíîâà ãðàôè÷åñêèé ðåæèì. Íàæìèòå <RETURN>');
25 Readln;
26 CloseGraph;
27 end. { GraphTest }
Çàìåòèì, ÷òî âûçîâ ïðîöåäóðû
SetGraphMode íà ñòðîêå 23 ñáðà-
ñûâàåò âñå ãðàôè÷åñêèå ïàðàìåòðû
(ïàëèòðà, òåêóùèé óêàçàòåëü, îñ-
íîâíîé è ôîíîâûé öâåòà
è ò.ä.) è èì ïðèñâàèâàþòñÿ ïðèíÿòûå ïî
óìîë÷àíèþ çíà÷åíèÿ.
Âûçîâ CloseGraph âîññòàíàâëèâàåò ïåðâîíà÷àëüíî îáíàðóæåííûé
âèäåîðåæèì (InitGraph) è îñâîáîæäàåò
ïàìÿòü, èñïîëüçóåìóþ ãðàôè-
÷åñêèì äðàéâåðîì.
Äëÿ ìîäóëÿ Graph ïðåäóñìîòðåíû äâå ïðîãðàììû óïðàâëåíèÿ
äè-
íàìè÷åñêè ðàñïðåäåëÿåìîé
îáëàñòüþ GraphFrååÌåì è GraphGetÌåì.
Ïåðâàÿ èç íèõ îñâîáîæäàåò ïàìÿòü,
ðàñïðåäåëåííóþ äëÿ äðàéâåðîâ, à
âòîðàÿ - ðàñïðåäåëÿåò ïàìÿòü äëÿ
äðàéâåðîâ ãðàôè÷åñêèõ óñòðîéñòâ.
Ñòàíäàðòíûå ïðîãðàììû èìåþò ñëåäóþùèé
âèä:
procedure GraphGetMem(var P :
Pointer; Size : word);
{ âûäåëèòü ïàìÿòü äëÿ
äðàéâåðîâ ãðàôè÷åñêèõ óñòðîéñòâ }
procedure GraphFreeMem(var P :
Pointer; Size : word);
{ îñâîáîäèòü ïàìÿòü äëÿ
äðàéâåðîâ ãðàôè÷åñêèõ óñòðîéñòâ }
 ìîäóëå Graph èìåþòñÿ äâà
óêàçàòåëÿ, êîòîðûå ïî óìîë÷àíèþ
óêàçûâàþò íà äâå îïèñàííûå çäåñü ñòàíäàðòíûå
ïîäïðîãðàììû. Ýòè
óêàçàòåëü îïðåäåëÿþòñÿ ñëåäóþùèì
îáðàçîì:
var
GraphGetMemPtr : pointer;
{ óêàçàòåëü íà ïðîãðàììó
ðàñïðåäåëåíèÿ ïàìÿòè }
GraphFreeMemPtr : pointer;
{ óêàçàòåëü íà ïðîãðàììó
îñâîáîæäåíèÿ ïàìÿòè }
Âî âðåìÿ èíèöèàëèçàöèè ìîäóëÿ
Graph ýòè óêàçàòåëè ññûëàþòñÿ
íà
ñòàíäàðòíûå ãðàôè÷åñêèå ïðîãðàììû ðàñïðåäåëåíèÿ/îñâîáîæäåíèÿ,
êîòîðûå îïðåäåëÿþòñÿ â
ñåêöèè ðåàëèçàöèè ìîäóëÿ
Graph. Ïàìÿòü
ðàñïðåäåëÿòñÿ â òðåõ ðàçëè÷íûõ öåëÿõ:
* äëÿ ìíîãîöåëåâûõ ãðàôè÷åñêèõ áóôåðîâ, ðàçìåð êîòîðûõ óñòà-
íàâëèâàåòñÿ âûçîâîâ
SegGraphBufSize (ïî óìîë÷àíèþ ýòî 4Ê);
* äëÿ äðàéâåðà óñòðîéñòâà, çàãðóæàåìîãî InitGraph (ôàéëû
*.BGI);
* äëÿ ôàéëà âåêòîðíîãî
øðèôòà, çàãðóæåííîãî SetTextStyle
(ôàéëû *.CHR).
Ãðàôè÷åñêèé áóôåð âñåãäà âûäåëÿåòñÿ â äèíàìè÷åñêè ðàñïðåäå-
ëÿåìîé îáëàñòè ïàìÿòè. Ïàìÿòü äëÿ äðàéâåðà óñòðîéñòâà âûäåëÿåòñÿ
â äèíàìè÷åñêîé ïàìÿòè,
åñëè ïðîãðàììà íå çàãðóæàåò åãî èëè íå
êîìïîíóåòñÿ ñ íèì âûçîâîì
RegisterBGIdriver. Ïðè âûáîðå âåêòîðíî-
ãî øðèôòà ñ ïîìîùüþ SetTextStyle òàêæå âûäåëÿåòñÿ ïàìÿòü â äèíà-
ìè÷åñêè ðàñïðåäåëÿåìîé îáëàñòè (åñëè
âàøà ïðîãðàììà íå êîìïîíóåò-
ñÿ ñî øðèôòîì è íå èñïîëüçóåò
RegisterBGIfont).
×òîáû çàäàòü âàøå ñîáñòâåííîå óïðàâëåíèå ïàìÿòüþ, â ìîäóëå
Graph âû ìîæåòå èçìåíèòü çíà÷åíèÿ ýòèõ
óêàçàòåëåé òàê, ÷òîáû îíè
ññûëàëèñü íà âàøè ñîáñòâåííûå ïðîãðàììû. Ïðîãðàììû,
çàäàííûå
ïîëüçîâàòåëåì, äîëæíû èìåòü òîò æå
ñïèñîê ïàðàìåòðîâ, ÷òî è ñòàí-
äàðòíûå ïðîãðàììû, è äîëæíû èìåòü
äàëüíèé òèï âûçîâà. Ïðèâåäåì
äàëåå ïðèìåð çàäàííûõ ïîëüçîâàòåëåì ïðîãðàìì ðàñïðåäåëåíèÿ
è îñ-
âîáîæäåíèÿ ïàìÿòè. Çàìåòèì, ÷òî ïðè èñïîëüçîâàíèè ïðîöåäóðû
Eõit
àâòîìàòè÷åñêè âûçûâàåòñÿ ïðîöåäóðà
CloseGraph.
program UserHeapManegement;
{ ïðîãðàììà ïîêàçûâàåò, êàê ïîëüçîâàòåëü ìîæåò ðàáîòàòü ñ
ïîäïðîãðàììàìè óïðàâëåíèÿ äèíàìè÷åñêè ðàñïðåäåëÿåìîé îá-
ëàñòüþ ïàìÿòè, èñïîëüçóåìûìè â
ìîäóëå Graph }
uses
Graph;
var
GraphDriver, GraphMode :
Integer;
ErrorCode : Integer; { èñïîëüçóåòñÿ äëÿ
ñîõðàíåíèÿ êîäà
âîçâðàòà ôóíêöèè GraphResult }
PreGraphExitProc : Pointer { èñïîëüçóåòñÿ äëÿ ñîõ-
ðàíåíèÿ èñõîäíîé
ïðîöåäóðû âûõîäà }
{ ïðîöåäóðû ïîëüçîâàòåëÿ
äîëæíû èñïîëüçîâàòü äàëüíèé òèï
îáðàùåíèÿ }
procedure MyGetMem(var P :
Pointer; Size : word); far;
{ âûäåëèòü ïàìÿòü äëÿ äðàéâåðîâ ãðàôè÷åñêèõ
óñòðîéñòâ }
begin
Write('Áûëà âûçâàíà ïðîöåäóðà
',
'MyGetMem, íàæìèòå
<Enter>:');
GetMem(P, Size);
end; { MyGetMem }
procedure MyFreeMem(ver P :
Pointer; Size : word); far;
{ îñâîáîäèòü ïàìÿòü, çàíÿòóþ
äðàéâåðàìè ãðàôè÷åñêèõ
óñòðîéñòâ }
begin
RestoreCRTMode;
Write('Áûëà âûçâàíà ïðîöåäóðà
MyFreeMem, íàæìèòå ',
'<Enter>:');
Readln;
if P <> Nil Then { íå
îñâîáîæäàòü ïóñòûå óêàçàòåëè }
begin
FreeMem(P, Size);
P := Nil;
end; { MyFreeMem }
procedure MyExitProc; far;
{ ïðîöåäóðà âñåãäà ïîëó÷àåò
âûçîâ ïðè ïðåêðàùåíèè ðàáîòû
ïðîãðàììû }
begin
ExitProc := PreGraphExitProc; {
âîññòàíîâèòü èñõîäíóþ
ïðîöåäóðó âûõîäà }
CloseGraph; { î÷èñòèòü äèíàìè÷åñêè ðàñïðåäåëÿåìóþ
îáëàñòü
}
end; { MyExitProc }
begin
{ èíèöèàëèçèðîâàòü ïðîãðàììó
î÷èñòêè ïàìÿòè }
PreGraphExitProc := ExitProc;
ExitProc := @MyExitProc;
GraphGetMemPtr := @MyGetMem ;
{ çàìåíèòü ðàñïðåäåëåíèå
ïàìÿòè }
GraphFreeMemPtr := @MyFreeMem
; { çàìåíèòü îñâîáîæäåíèå
ïàìÿòè }
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, '');
ErrorCode := GraphResult;
if ErrorCode <> grOk
then
begin
Writeln('Ãðàôè÷åñêàÿ îøèáêà: '
GraphErrorMsg(ErrorCode);
Readln;
Halt(1);
end;
Line(0, 0, GetMaxX, GetMaxY);
OutText(1, 1, 'Íàæìèòå êëàâèøó
<Enter>:');
Readln;
end. { UserHeapManegement }
Åñëè öåëåâîé ïëàòôîðìîé
ÿâëÿåòñÿ çàùèùåííûé ðåæèì DOS,
òî
ïðè èñïîëüçîâàíèè ïîäîáíûõ ïðîãðàìì
ñëåäóåò èìåòü â âèäó ñëåäóþ-
ùåå: âû äîëæíû îáåñïå÷èòü, ÷òî
ëþáîé âîçâðàùàåìûé GetMem óêàçà-
òåëü äîëæåí èìåòü íóëåâîå
ñìåùåíèå. Ñäåëàòü ýòî ìîæíî ñ ïîìîùüþ
ôóíêöèè GlobalAllocPtr:
procedure MyGetMem(var P:
Pointer; Size: Word); far;
var
P: Pointer;
bagin
P:=
GlobalAllocPtr(HeapAllocFlags, Size);
GetMem(P, 4096);
end; { MyGetMem }
Òàáëèöà 19.3
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
Ïîäïðîãðàììà ³ Îïèñàíèå ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Arñ ³ Ðèñóåò äóãó
îêðóæíîñòè îò íà÷àëüíîãî óãëà³
³ ³ äî êîíå÷íîãî óãëà; òî÷êà (x,y) áåðåòñÿ â³
³ ³ êà÷åñòâå öåíòðà îêðóæíîñòè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Bàr ³ Ðèñóåò ñòîëáåö,
èñïîëüçóÿ òåêóùèé òèï çàê-³
³ ³ ðàñêè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Bàr3D ³ Ðèñóåò òðåõìåðíûé
ñòîëáåö, èñïîëüçóÿ òå-³
³ ³
êóùèé òèï çàêðàñêè.
³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Circlå ³ Ðèñóåò
îêðóæíîñòü ñ öåíòðîì â òî÷êå (x,y).³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ClearDeviñå ³
Ñáðàñûâàåò òåêóùèå ïàðàìåòðû,
óñòàíîâëåí-³
³ ³ íûå äëÿ óñòðîéñòâà âûâîäà, è ïîäãîòàâëèâà-³
³ ³ åò åãî äëÿ âûâîäà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ClearViewPort ³ Î÷èùàåò òåêóùóþ
îáëàñòü ïðîñìîòðà (îêíî³
³ ³ ýêðàíà). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
CloseGraph ³ Âûïîëíÿåò
îñòàíîâ ãðàôè÷åñêîé ñèñòåìû. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
DetectGraph ³ Ðàñïîçíàåò
àïïàðàòóðó è îïðåäåëÿåò, êàêîé³
³ ³ ãðàôè÷åñêèé äðàéâåð è ðåæèì íóæíî èñïîëü-³
³ ³ çîâàòü. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
DrawPoly ³ Ðèñóåò
ìíîãîóãîëüíèê, èñïîëüçóÿ òåêóùèé³
³ ³ òèï ëèíèè è öâåò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Ellipse ³ Ðèñóåò ýëëèïòè÷åñêóþ äóãó îò íà÷àëüíîãî³
³ ³ óãëà äî êîíå÷íîãî óãëà, èñïîëüçóþ
(Õ,Y),³
³ ³ êàê òî÷êó öåíòðà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
FillPoly ³
Çàêðàøèâàåò ìíîãîóãîëüíèê, èñïîëüçóÿ
ïðå-³
³ ³ îáðàçîâàòåëü ðàçâåðòêè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
FloodFill ³
Çàêðàøèâàåò îãðàíè÷åííóþ îáëàñòü,
èñïîëü-³
³ ³ çóÿ òåêóùèé îáðàçåö çàêðàñêè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetArcCoords ³ Ïîçâîëÿåò ïîëüçîâàòåëþ çàïðàøèâàòü êîîð-³
³
³ äèíàòû ïîñëåäíåé
êîìàíäû Arñ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetAspectRatio ³ Âîçâðàùàåò
äåéñòâóþùåå ðàçðåøåíèå ãðàôè- ³
³ ³ ÷åñêîãî ýêðàíà, íà îñíîâå êîòîðîãî ìîæåò³
³ ³ áûòü âû÷èñëåí
êîýôôèöèåíò îòíîñèòåëüíîãî³
³ ³ óäëèíåíèÿ (Õàsð,Yàsð). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ GetBkÑîlor ³ Âîçâðàùàåò òåêóùèé ôîíîâûé öâåò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetCîlor ³ Âîçâðàùàåò
òåêóùèé öâåò ðèñóíêà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetDefaultPalette³ Â çàïèñè òèïà
PaletteType âîçâðàùàåò èñ-³
³ ³ ïîëüçóåìóþ ïî óìîë÷àíèþ ïàëèòðó. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetDriverName ³
Âîçâðàùàåò ñòðîêó, ñîäåðæàùóþ èìÿ òå-³
³ ³ êóùåãî äðàéâåðà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetFillPattern ³
Âîçâðàùàåò ïîñëåäíèé îáðàçåö
çàïîëíèòåëÿ,³
³ ³ óñòàíîâëåííûé ñ ïîìîùüþ îáðàùåíèÿ ê ïðîöå-³
³ ³ äóðå SetFillPattern. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetFillSetting ³ Ïîçâîëÿåò ïîëüçîâàòåëþ âûïîëíèòü çàïðîñ î³
³ ³ òåêóùåì îáðàçöå è öâåòå çàêðàñêè, óñòàíîâ-³
³ ³ ëåííûìè
ñ ïîìîùüþ ïðîöåäóð SetFillStyle è³
³ ³ SetFillPattern. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetImage ³ Ñîõðàíÿåò äâîè÷íûé îáðàç çàäàííîé îáëàñòè³
³ ³
â áóôåðå.
³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetGraphMode ³ Âîçâðàùàåò
òåêóùèé ãðàôè÷åñêèé ðåæèì. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetLineSettings ³ Âîçâðàùàåò
òåêóùèé òèï ëèíèè, îáðàçåö ëè-³
³ ³ íèè è òîëùèíó ëèíèè, çàäàííûå ïðîöåäóðîé³
³ ³ SetLineStyle. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetMaxColor ³
Âîçâðàùàåò ìàêñèìàëüíîå çíà÷åíèå
öâåòà,³
³ ³ êîòîðîå ìîæíî ïåðåäàòü ïðîöåäóðå SetColor.³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetMAxMode ³
Âîçâðàùàåò ìàêñèìàëüíûé íîìåð ðåæèìà äëÿ³
³ ³ òåêóùåãî çàãðóæåííîãî äðàéâåðà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetÌàõÕ ³ Âîçâðàùàåò äëÿ
òåêóùåãî ãðàôè÷åñêîãî äðàé-³
³ ³ âåðà è ðåæèìà ñàìóþ ïðàâóþ êîëîíêó (ðàçðå-³
³ ³ øåíèå ïî õ). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetÌàõY ³ Âîçâðàùàåò äëÿ
òåêóùåãî ãðàôè÷åñêîãî äðàé-³
³ ³ âåðà è ðåæèìà ñàìóþ íèæíþþ ñòðîêó (ðàçðå-³
³ ³ øåíèå ïî ó). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetPaletteSize ³ Âîçâðàùàåò
ðàçìåð òàáëèöû ïðîñìîòðà ïàëèò-³
³ ³ ðû. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetPixel ³ Âîçâðàùàåò
çíà÷åíèå ýëåìåíòà èçîáðàæåíèÿ â³
³ ³ òî÷êå Õ,Y. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetPalette ³ Âîçâðàùàåò
òåêóùóþ ïàëèòðó è åå ðàçìåð. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetTextSettings ³ Âîçâðàùàåò
òåêóùèé òåêñòîâûé øðèôò, íàï-³
³
³ ðàâëåíèå,
ðàçìåð è âûðàâíèâàíèå äëÿ íåãî,³
³ ³ óñòàíîâëåííûå ñ ïîìîùüþ ïðîöåäóð³
³ ³ SetTextStyle è SetTextJustify. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetViewSettings ³ Ïîçâîëÿåò
ïîëüçîâàòåëþ âûäàòü çàïðîñ î òå-³
³ ³ êóùåé îáëàñòè èçîáðàæåíèÿ è ïàðàìåòðàõ îò-³
³ ³ ñå÷åíèÿ èçîáðàæåíèÿ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetÕ ³
Âîçâðàùàåò êîîðäèíàòó Õ òåêóùåé ïîçèöèè³
³ ³ (òåêóùåãî óêàçàòåëÿ). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GetY ³
Âîçâðàùàåò êîîðäèíàòó Y
òåêóùåé ïîçèöèè³
³ ³ (òåêóùåãî óêàçàòåëÿ). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GraphErrorMsg ³ Äëÿ çàäàííîãî
êîäà îøèáêè âîçâðàùàåò ñòðî-³
³ ³ êó ñîîáùåíèÿ îá îøèáêå. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
GraphResult ³
Âîçâðàùàåò êîä îøèáêè äëÿ ïîñëåäíåé
ãðà-³
³ ³ ôè÷åñêîé îïåðàöèè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
InitGraph ³
Èíèöèàëèçèðóåò ãðàôè÷åñêóþ ñèñòåìó è ïå-³
³ ³ ðåâîäèò àïïàðàòóðó â ãðàôè÷åñêèé ðåæèì. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ImageSize ³ Âîçâðàùàåò ÷èñëî áàéò,
êîòîðûå òðåáóþò-³
³ ³ ñÿ äëÿ
ñîõðàíåíèÿ ïðÿìîóãîëüíîé îáëàñòè³
³ ³ ýêðàíà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
InstallUserDriver³ Óñòàíàâëèâàåò
äîáàâëåííûé ïîëüçîâàòåëåì³
³ ³ äðàéâåð â òàáëèöå äðàéâåðîâ óñòðîéñòâ BGI.³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
InstallUserFont ³ Óñòàíàâëèâàåò
íîâûé ôàéë øðèôòà, íå âñòðî-³
³ ³ åííûé â ãðàôè÷åñêóþ ñèñòåìó. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
InitGraph ³ Èíèöèàëèçèðóåò
ãðàôè÷åñêóþ ñèñòåìó è ïåðå-³
³ ³ âîäèò àïïàðàòíûå ñðåäñòâà â ãðàôè÷åñêèé³
³ ³ ðåæèì. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Line ³ Ðèñóåò ïðÿìóþ
ëèíèþ èç òî÷êè (x1,y1) â³
³ ³ (x2,y2). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
LineRel ³ Ðèñóåò ïðÿìóþ ëèíèþ äî
òî÷êè, ïðåäñòàâ-³
³ ³ ëÿþùåé ñîáîé
îòíîñèòåëüíîå ðàññòîÿíèå îò³
³ ³ òåêóùåãî óêàçàòåëÿ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
LinåTî ³ Ðèñóåò ëèíèþ
èç òåêóùåãî ïîëîæåíèÿ
â³
³ ³ òî÷êó (x,y). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÌîveRål ³
Ïåðåìåùàåò òåêóùèé óêàçàòåëü íà ðàññòîÿ-³
³ ³ íèå, ÿâëÿþùååñÿ îòíîñèòåëüíûì ðàññòîÿíèåì³
³ ³ îò òåêóùåé ïîçèöèè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÌîvåÒî ³
Ïåðåìåùàåò òåêóùèé óêàçàòåëü
â òî÷êó³
³ ³ (x,y). ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÎutText ³ Ïîñûëàåò ñòðîêó íà óñòðîéñòâî âûâîäà, íà-³
³ ³ ÷èíàÿ ñ òåêóùåãî óêàçàòåëÿ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÎutTextÕY ³ Ïîñûëàåò
ñòðîêó íà óñòðîéñòâî âûâîäà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
PieSlice ³ Ðèñóåò
ñåêòîð. Òî÷êà (Õ,Y) èñïîëüçóåòñÿ â³
³ ³ êà÷åñòâå öåíòðà, à ñåêòîð ðèñóåòñÿ îò íà-³
³ ³ ÷àëüíîãî äî êîíå÷íîãî óãëà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÐutImagå ³ Âûâîäèò íà
ýêðàí äâîè÷íûé îáðàç. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÐutÐiõål ³ Ñòðîèò ýëåìåíò
èçîáðàæåíèÿ â òî÷êå x,y. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
Råñtanglå ³ Ðèñóåò ïðÿìîóãîëüíèê, èñïîëüçóÿ òåêóùèé³
³ ³ òèï ëèíèè è öâåò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ RegisterBGIDriver³ Ðåãèñòðèðóåò
äîïóñòèìûé äðàéâåð (ôîðìàòà³
³ ³ BGI) â ãðàôè÷åñêîé ñèñòåìå. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
RegisterBGIFont ³ Ðåãèñòðèðóåò â
ãðàôè÷åñêîé ñèñòåìå äîïóñ-³
³ ³ òèìûé (ôîðìàòà BGI) øðèôò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
RåstoreCRTÌîdå ³
Âîññòàíàâëèâàåò èñõîäíûé ðåæèì
ýêðàíà,³
³ ³
êîòîðûé áûë óñòàíîâëåí ïðè èíèöèàëèçàöèè³
³ ³ ãðàôèêè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetActivePage ³ Óñòàíàâëèâàåò
äëÿ ãðàôè÷åñêîãî âûâîäà àê-³
³ ³ òèâíóþ ñòðàíèöó. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetAllPalette ³ Èçìåíÿåò âñå öâåòà ïàëèòðû, êàê áûëî óêà-³
³ ³ çàíî. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetAspectRatio ³ Èçìåíÿåò
ïðèíÿòûé ïî óìîë÷àíèþ êîýôôèöèåíò³
³ ³ îòíîñèòåëüíîãî óäëèíåíèÿ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetBkÑîlor ³ Èñïîëüçóÿ
ïàëèòðó, óñòàíàâëèâàåò òåêóùèé³
³ ³ ôîíîâûé öâåò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetColor ³ Èñïîëüçóÿ
ïàëèòðó, óñòàíàâëèâàåò òåêóùèé³
³ ³ öâåò ðèñóíêà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetFillPattern ³ Âûáèðàåò
îáðàçåö çàêðàñêè, çàäàííûé ïîëü-³
³ ³ çîâàòåëåì. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetFillStyle ³ Óñòàíàâëèâàåò
îáðàçåö çàêðàñêè è åå öâåò. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetGraphBufSize ³ Ïîçâîëÿåò
èçìåíèòü ðàçìåð áóôåðà, èñïîëü-³
³ ³ çóåìîãî
äëÿ îïðîñà è çàêðàñêè. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetGraphMode ³
Ïåðåêëþ÷àåò ñèñòåìó â
ãðàôè÷åñêèé ðåæèì³
³ ³ è î÷èùàåò ýêðàí. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetLineStyle ³
Óñòàíàâëèâàåò òåêóùèé òèï ëèíèè è åå øè-³
³ ³ ðèíó. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetPalette ³ Èçìåíÿåò îäèí
öâåò ïàëèòðû, çàäàííûé ïå-³
³ ³ ðåìåííûìè Colornum è Color. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetGRBPalette ³ Ïîçâîëÿåò ìîäèôèöèðîâàòü çàïèñè ïàëèò-³
³ ³ ðû äëÿ äðàéâåðîâ IBM 8514 è VGA. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetTextJustify ³ Ñ ïîìîùüþ
ÎutTåxt è ÎutTåõtÕY
óñòà-³
³ ³ íàâëèâàåò çíà÷åíèÿ äëÿ âûðàâíèâàíèÿ òåêñ-³
³ ³ òà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetTextStyle ³ Çàäàåò òåêóùèé òåêñòîâûé øðèôò, åãî òèï è³
³ ³ êîýôôèöèåíò ðàçìåðà ñèìâîëà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetUserCharSize ³ Ïîçâîëÿåò âàì
äëÿ âåêòîðíûõ øðèôòîâ èç-³
³ ³ ìåíèòü âûñîòó è øèðèíó ñèìâîëà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetViewPort ³ Äëÿ ãðàôè÷åñêîãî âûâîäà óñòàíàâëèâàåò³
³ ³ òåêóùóþ îáëàñòü âûâîäà èëè îêíî. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
SetVisualPage ³ Çàäàåò âèçóàëüíûé íîìåð ãðàôè÷åñêîé ñòðà-³
³ ³ íèöû. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ SetWriteMode ³ Óñòàíàâëèâàåò ðåæèì âûâîäà íà ýêðàí
(êî-³
³ ³ ïèðîâàíèå èëè ñ ïîìîùüþ îïåðàöèè XOR) äëÿ³
³ ³ ëèíèé, âû÷åð÷èâàåìûõ ïðîöåäóðàìè DrawPoly,³
³ ³ Line, LineRel, LineTo, Rectangle. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
TåõtÍåight ³
Âîçâðàùàåò âûñîòó ñòðàíèö
â ýëåìåíòàõ³
³ ³ èçîáðàæåíèÿ. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
TåõtWidth ³
Âîçâðàùàåò øèðèíó ñòðîêè
â ýëåìåíòàõ³
³ ³ èçîáðàæåíèÿ. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Ïîäðîáíîå îïèñàíèå êàæäîé
ïðîöåäóðû è ôóíêöèè äàíî â Ãëàâå 1
("Ñïðàâî÷íèê ïî áèáëèîòåêå")
"Ñïðàâî÷íîãî ðóêîâîäñòâà ïðîãðàììèñ-
òà".
 ìîäóëå Graph èìååòñÿ ìíîãî
ïîëåçíûõ îïèñàíèé òèïîâ è êîíñ-
òàíò, íà êîòîðîå âû ìîæåòå ññûëàòüñÿ.
Êîíñòàíòû ìîäóëÿ Graph ìîæíî ñãðóïïèðîâàòü ïî èõ íàçíà÷åíèþ.
Ïîäðîáíîå îïèñàíèå êàæäîé êîíñòàíòû äàíî â Ãëàâå 1 ("Ñïðàâî÷íèê
ïî áèáëèîòåêå") "Ñïðàâî÷íîãî ðóêîâîäñòâà ïðîãðàììèñòà".
Ãðóïïû êîíñòàíò ìîäóëÿ Graph Òàáëèöà 19.4
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ¿
³ Ãðóïïà êîíñòàíò ³ Îïèñàíèå ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû äðàéâåðîâ ³ Êîíñòàíòû, îïðåäåëÿþùèå âèäåîäðàéâå-³
³ è ðåæèìîâ ³ ðû è ðåæèìû; èñïîëüçóþòñÿ â ïîäïðîã-³
³ ³ ðàììàõ InitGraph, DetectGraph è³
³ ³ GetModeRange. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ grXXXX ³ Êîíñòàíòû, èäåíòèôèöèðóþùèå òèï³
³ ³ îøèáêè, âîçâðàùàåìîé GraphResult. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû öâåòîâ ³ Êîíñòàíòû, îïðåäåëÿþùèå öâåòà. Èñ-³
³ ³ ïîëüçóþòñÿ â ïîäïðîãðàììàõ³
³ ³ SetPalette è SetAllPalette. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû öâåòîâ ³ Êîíñòàíòû, èñïîëüçóåìûå â ïîäïðîã-³
³ äëÿ SetRGBPalette ³ ðàììå SetGRBPalette äëÿ âûáîðà íà³
³ ³ IBM 8514 ñòàíäàðòíûõ öâåòîâ EGA. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû ñòèëÿ ³ Êîíñòàíòû, èñïîëüçóåìûå äëÿ îïðåäå-³
³ ëèíèè ³ ëåíèÿ ñòèëÿ è òîëùèíû ëèíèè; èñïîëü-³
³ ³ çóþòñÿ ñ GetLineSettings è³
³ ³ SetLineStyle. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû øðèôòà ³ Èñïîëüçóþòñÿ äëÿ èäåíòèôèêàöèè øðèô-³
³ ³ òîâ â ïîäïðîãðàììàõ GetTextSettings³
³ ³ è SetTextSetting. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû âûðàâíèâàíèÿ³ Êîíñòàíòû, óïðàâëÿþùèå ãîðèçîíòàëü-³
³ ³ íûì è âåðòèêàëüíûì âûðàâíèâàíèåì.³
³ ³ Èñïîëüçóþòñÿ â SetTextJustify. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû îòñå÷åíèé ³ Êîíñòàíòû, óïðàâëÿþùèå îòñå÷åíèåì.³
³ ³ Èñïîëüçóþòñÿ â SetViewPort. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Êîíñòàíòû ñòîëáöîâ ³ Óïðàâëÿþò èçîáðàæåíèåì "âåðøèíû"³
³ ³ òðåõìåðíîãî ñòîëáöà; èñïîëüçóþòñÿ â³
³ ³ Bar3D. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Îáðàçöû çàêðàñêè ³ Îïðåäåëÿþò îáðàçåö çàêðàñêè îáëàñòè.³
³ ³ Èñïîëüçóþòñÿ â GetFillSettings è³
³ ³ SetFillStyle. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ Îïåðàöèè BitBlt ³ Îïåðàöèè (êîïèðîâàíèå, xor, or, and,³
³ ³ not), êîòîðûå èñïîëüçóþòñÿ â³
³ ³ PutImage è SetWriteMode. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´
³ MaxColors ³ Êîíñòàíòû, îïðåäåëÿþùèå ìàêñèìàëüíîå³
³ ³ ÷èñëî öâåòîâ â GetPalette,³
³ ³ GetDefaultPalette è SetAllPalette. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ
 ìîäóëå Graph îïðåäåëåíû ñëåäóþùèå òèïû:
Òèïû ìîäóëÿ Graph Òàáëèöà 19.5
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ¿
³ Òèï ³ Îïèñàíèå ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ PaletteType ³ Çàïèñü, îïðåäåëÿþùàÿ ðàçìåð è öâåòà³
³ ³ ïàëèòðû; èñïîëüçóåòñÿ â GetPalette,³
³ ³ GetDefaultPalette è SetAllPalette. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ LineSettingsType ³ Çàïèñü, îïðåäåëÿþùàÿ ñòèëü, îáðàçåö è³
³ ³ òîëùèíó ëèíèè; èñïîëüçóåòcÿ ³
³ ³ GetLineSettings. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ FillSettingsType ³ Çàïèñü, îïðåäåëÿþùàÿ òåêñò. Èñïîëüçó-³
³ ³ åòñÿ â GetTextSettings. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ FillPatternType ³ Çàïèñü, îïðåäåëÿþùàÿ çàäàííûé ïîëü-³
³ ³ çîâàòåëåì îáðàçåö çàêðàñêè. Äàííàÿ³
³ ³ çàïèñü èñïîëüçóåòñÿ ïðîöåäóðàìè³
³ ³ GetFillPattern è SetFillPattern. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ PointType ³ Òèï, îïðåäåëåííûé äëÿ âàøåãî óäîáñò-³
³ ³ âà. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ ViewPortType ³ Çàïèñü, ñîîáùàþùàÿ î ñîñòîÿíèè òåêó-³
³ ³ ùåé îáëàñòè ïðîñìîòðà; èñïîëüçóåòñÿ³
³ ³ GetViewSettings. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ´
³ ArcCoordsType ³ Çàïèñü äëÿ ïîëó÷åíèÿ èíôîðìàöèè î³
³ ³ ïîñëåäíåì âûçîâå Arc èëè Ellipse; èñ-³
³ ³ ïîëüçóåòñÿ GetArcCoords. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÙ
Ìîäóëü Graph ñîäåðæèò äâå ïåðåìåííûå, êîòîðûå âû ìîæåòå èñ-
ïîëüçîâàòü: GraphGetMemPtr è GraphFreeMemPtr. Îíè ïðèìåíÿþòñÿ â
ïîäïðîãðàììàõ óïðàâëåíèÿ äèíàìè÷åñêè ðàñïðåäåëÿåìîé îáëàñòüþ ïà-
ìÿòè. Ïðî÷èòàòü î íèõ ìîæíî â Ãëàâå 1 ("Ñïðàâî÷íèê ïî áèáëèîòå-
êå") "Ñïðàâî÷íîãî ðóêîâîäñòâà ïðîãðàììèñòà".