Модуль 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).
Итак, в рабочем каталоге могут находиться следующие файлы:
CGA.BGI - драйвер для IBM CGA, MCGA; EGAVGA.BGI - драйвер для IBM EGA, VGA; HERC.BGI - драйвер для Hercules; ATT.BGI - драйвер для АТ&Т6300 (400 строк); PC3270.BGI - драйвер для IBM 3270PC; IBM8514.BGI - драйвер для IBM 8514.
Такой набор файлов необходим при составлении программ, которые будут работать практически на всех ПК, совместимых с ПК фирмы IBM. Если же такая задача не стоит, то достаточно иметь один файл, соответствующий представленному в используемом ПК графическому адаптеру.
Все процедуры и функции модуля Graph можно разбить на функциональные группы:
1) Управление графическими режимами и их анализ (DetectGraph, InitGraph, CloseGraph, GraphDefaults, ClearDevice, InstallUserDriver, RegisterBGIDriver, RestoreCRTMode, SetGraphMode, SetWrifeMode, GetGraphMode, GetModeRange, GetMaxMode, GetModeName, GetDriverName, GraphResuIt,, GraphErrorMsg).
2) Рисование графических примитивов и фигур:
a) управление «текущим указателем» (MoveTo, MoveRel, GetMaxX, GetMaxY, GetX, GetY);
b) собственно рисование (Line, LineTo, LineRel, Arc, GetArcCoords, Circle, Sector, Ellipse, Rectangle, DrawPoly);
c) стиль линий и коэффициент сжатия изображения (SetLineStyle, GetLineSettings, SetAspeclRatio, GetAspectRatio).
3) Управление цветами и шаблонами заполнения (SetColor, GetColor, SetBkColor, GetBkColor, GetMaxColor, GetPalette, GetPaletteSize, GetDefaultPalette, SetPalette, SetAllPalette, SetRGBPalette, SetFillStyle, SetFillPattern, GetFillPattern, GetFillSettings, SetGraphBufSize, FillPoly, FillEIIipse, FloodFill, PicSlice, Bar, Bar3D).
4) Битовые операции (PutPixel, GetPixel, ImageSize, Getlmage, Putlmage).
5) Управление страницами (SetActivePage, SetVisualPage).
6) Графические окна (вьюпорты) (SetViewPort, GetViewSettings, ClearViewPort).
7) Управление выводом текста (RegisterBGIFont, lnstallUserFont, OutText, OutTextXY, SetTextStyle, SetTextJustify, SetUserCharSize, GetTextSettings, GetTextHeight, TextWidth).
Управление графическими режимами. ............