TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

Глава 15. Использование графического интерфейса Borland

·        Драйверы

·        Поддержка устройства IBM 8514

·        Система координат

·        Текущий указатель

·        Текст

·        Графические изображения и их виды

·        Области просмотра и двоичные образы

·        Поддержка страниц и цветов

·        Обработка ошибок

·        Начало работы

·        Программы управления динамически распределяемой памятью

·        Процедуры модуля Graph

·        Константы, типы и переменные модуля 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.

 

Возврат в начало

 

 

Поддержка устройства 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

Процедуры модуля 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 имеется много полезных описаний типов и конс­тант, на которое вы можете ссылаться.

Константы

Группы констант модуля 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. Они применяются в подпрограммах управления динамически распределяемой областью па­мяти.

 

Возврат в начало

 

 

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz