·
Драйверы
·
Поддержка устройства IBM 8514
·
Текст
·
Графические изображения и их виды
·
Области просмотра и двоичные образы
·
Программы управления динамически
распределяемой памятью
·
Константы, типы и переменные модуля Graph
Модуль Graph реализует полную библиотеку из более чем 50 графических
программ - от вызовов процедур и функций высокого уровня, как, например,
SetViewPort, Bаr3D, DrаwPoly, до программ, ориентированных на работу с битами,
таких, как GetImage или РutImage. Поддерживается несколько видов закрашивания и
типов линий, и имеется несколько шрифтов, которые можно изменять по величине,
выравнивать и ориентировать горизонтально или вертикально.
Для компиляции программы, использующей модуль Grаph, вам не потребуется
никаких внешних файлов (кроме, конечно, исходного текста вашей программы,
компилятора и доступа к стандартным модулям в библиотеке исполняющей системы).
Имена библиотек и модуля Graph Таблица 15.1
Тип
программы |
Библиотека |
Имя модуля
Graph |
Реальный режим Защищенный режим |
TURBO.TPL TPP.TPL |
GRAPH.TPU 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 выберет монитор и графическую плату, при которой будет получаться наилучшее качество выводимой графической информации.
Таблица 15.2
Драйвер |
Аппаратура |
CGA.BGI EGAVGA.BGI HERC.BGI ATT.BGI PC3270.BGI IBM8514.BGI |
Драйвер для адаптеров CGA, MCGA фирмы IBM. Драйвер для
адаптеров EGA, VGA фирмы IBM. Драйвер для
монохромного адаптера Hercules фирмы IBM. Драйвер для
AT&T 6300 (400 строк). Драйвер для
IBM 3270 РС. Драйвер для 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
элементов изображения). Обе константы режима определены в интерфейсной части
GRAPH.TPU.
Для определения цветов в плате 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 -
при перемещении вниз. Таким образом координаты каждого из четырех углов и
конкретной точки (середины экрана) будут выглядеть следующим образом:
Рис. 15.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
Процедуры модуля Graph Таблица
15.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 |
Возвращает
ширину строки в элементах изображения. |
В модуле Graph имеется много полезных описаний
типов и констант, на которое вы можете ссылаться.
Константы
Группы констант
модуля Graph
Таблица 15.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 определены следующие типы:
Типы модуля Grap Таблица 15.5
Тип |
Описание |
PaletteType |
Запись,
определяющая размер и цвета палитры; используется в GetPalette,
GetDefaultPalette и SetAllPalette. |
LineSettingsType |
Запись, определяющая стиль, образец и толщину линии; используетcя GetLineSettings. |
FillSettingsType |
Запись,
определяющая текст. Используется в GetTextSettings. |
FillPatternType |
Запись,
определяющая заданный пользователем образец закраски. Данная запись
используется процедурами GetFillPattern и SetFillPattern. |
PointType |
Тип,
определенный для вашего удобства. |
ViewPortType |
Запись,
сообщающая о состоянии текущей области просмотра; используется
GetViewSettings. |
ArcCoordsType |
Запись для
получения информации о последнем вызове Arc или Ellipse; используется
GetArcCoords. |
Переменные
Модуль Graph содержит две переменные, которые вы можете использовать:
GraphGetMemPtr и GraphFreeMemPtr. Они применяются в подпрограммах управления
динамически распределяемой областью памяти.