 
        
        Модуль Graph
Модуль Graph представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами различных адаптеров дисплеев: CGA, EGA, VGA и т.д. Библиотека содержит более пятидесяти графических процедур и функций, как базовых (рисование точек, линий, окружностей и т.п.), так и расширяющих возможности базовых (многоугольники, заполнение фигур, вывод текста и др.).
Чтобы запустить программу, использующую процедуры модуля Graph , необходимо, чтобы в рабочем каталоге находились соответственно графические драйверы (файлы с расширением .BGI), а если программа использует еще и штриховые шрифты, то необходимо, чтобы там же находились файлы шрифтов (с расширением .CHR).
Кроме того, системе программирования (компилятору) должен быть доступен модуль GRAPH.TPU (он не входит в состав файла TURBO.TPL, а изначально находится в архиве BGI.ARC).
Файлы bgi и содержимое модуля Graph
Файл BGI - это графический интерфейс (Borland Graphic Interface) фирмы Borland. Он обеспечивает взаимодействие программ с графическими устройствами. Перед работой программы в графических режимах дисплея процедура InitGraph определяет тип адаптера, представленного в ПК, и загружает в память соответствующий BGI-драйвер, в котором определены возможные режимы работы.
Процедура CloseGraph выгружает графический драйвер из памяти и восстанавливает текстовый режим работы видеоадаптера. В описываемом модуле присутствуют также процедуры, позволяющие выходить из графического режима без выгрузки драйвера (RestoreCRTMode) и возвращаться обратно (SetGraphMode).
Все процедуры и функции модуля Graph можно разбить на функциональные группы:
- Управление графическими режимами и их анализ (DetectGraph, InitGraph, CloseGraph, GraphDefaults, ClearDevice, InstallUserDriver, RegisterBGIDriver, RestoreCRTMode, SetGraphMode, SetWrifeMode, GetGraphMode, GetModeRange, GetMaxMode, GetModeName, GetDriverName, GraphResuIt,, GraphErrorMsg). 
- Рисование графических примитивов и фигур: 
- управление «текущим указателем» (MoveTo, MoveRel, GetMaxX, GetMaxY, GetX, GetY); 
- собственно рисование (Line, LineTo, LineRel, Arc, GetArcCoords, Circle, Sector, Ellipse, Rectangle, DrawPoly); 
- стиль линий и коэффициент сжатия изображения (SetLineStyle, GetLineSettings, SetAspeclRatio, GetAspectRatio) 
- Управление цветами и шаблонами заполнения (SetColor, GetColor, SetBkColor, GetBkColor, GetMaxColor, GetPalette, GetPaletteSize, GetDefaultPalette, SetPalette, SetAllPalette, SetRGBPalette, SetFillStyle, SetFillPattern, GetFillPattern, GetFillSettings, SetGraphBufSize, FillPoly, FillEIIipse, FloodFill, PicSlice, Bar, Bar3D). 
- Битовые операции (PutPixel, GetPixel, ImageSize, Getlmage, Putlmage). 
- Управление страницами (SetActivePage, SetVisualPage). 
- Графические окна (вьюпорты) (SetViewPort, GetViewSettings, ClearViewPort). 
- Управление выводом текста (RegisterBGIFont, lnstallUserFont, OutText, OutTextXY, SetTextStyle, SetTextJustify, SetUserCharSize, GetTextSettings, GetTextHeight, TextWidth). 
