АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Процедуры и функции из библиотеки Graph

Читайте также:
  1. Bibliography
  2. C) Summarize in one paragraph the essentials of the extract.
  3. C) Summarize in one paragraph the main ideas of the extract.
  4. GRAPHICAL RULES
  5. II. Выполнение процедуры
  6. II. Основные задачи и функции
  7. III. Завершение процедуры
  8. III. Завершение процедуры
  9. III. Окончание процедуры
  10. III. Предмет, метод и функции философии.
  11. IV. Group Discussion. The Future of Cinematography.
  12. NOTE SUR LA PHOTOGRAPHIE
Обращение Действие
InitGraph(Driver, Mode, F) Инициирует графический режим работы адаптера
CloseGraph Завершает работу адаптера в графическом режиме
RestoreCrtMode Служит для кратковременного возврата в текстовый режим
ClearDevice Очищает экран, закрашивает его в цвет фона
ClearViewPort Очищает графическое окно
SetGraphMode(Mode) Устанавливает новый графический режим работы адаптера;
SetViewPort(X1, Y1, X2, Y2, T) Устанавливает прямоугольное окно на экране: X1,Y1 – координаты левого верхнего, X2, Y2 – координаты правого нижнего углов окна, T – выражение типа Boolean, определяющее “отсечку” не умещающихся в окне элементов изображения (True – “отсекать”)
SetPalette(Reg, Col) Формирует новое значение Col в регистре с номером Reg (установка одного цвета палитры)
SetAllPalette(Palette) Производит смену кодов цветности во всех регистрах палитры
SetBkColor(Color) Устанавливает цвет фона (целое число от 0 до 15)
SetColor (Color) Устанавливает цвет для выводимых символов и линий, Color – выражение типа Word (см. гл. 2.4.6)
PutPixel(X, Y, Color) Выводит точку с координатами X, Y цветом Color
Line(X1, Y1, X2, Y2) Рисует отрезок линии по коордимнатам его концов
LineRel(Xh, Yh) Вычерчивает линию от текущего положения указателя до положения, заданного приращениями его координат Xh и Yh (выражения типа Integer)
LineTo(X, Y) Вычерчивает линию от текущего положения указателя до положения, заданного его новыми координатами
MoveRel(DX, DY) Устанавливает новое положение указателя в координатах относительно предыдущего
MoveTo(X, Y) Устанавливает новое положение указателя  
OutText(Т) Выводит текст Т (кроме кириллицы), начиная с текущего положения указателя
OutTextXY(X, Y, Т) Выводит текст Т, начиная с позиции X строки Y
Circle(X, Y, R) Рисует окружность радиуса R типа Word с центром в точке с координатами (X; Y)
Bar(X1, Y1, X2, Y2) Заполняет прямоугольную область экрана, заданную координатами диагонали
Bar3D(X1, Y1, X2, Y2, D, Top) Чертит трехмерное изображение параллелепипеда (D –глубина) и закрашивает его переднюю грань; Top – выражение типа Boolean, если Top = True, верхняя грань вычерчивается, если False - нет
Rectangle(X1, Y1, X2, Y2) Вычерчивает прямоугольник по координатам левого верхнего и правого нижнего углов

 

Стандартное состояние ПК после его включения, а также к моменту запуска программы из среды Турбо Паскаля соответствует работе экрана в текстовом режиме, поэтому любая программа, использующая графические средства компьютера, должна определенным образом инициировать графический режим работы дисплейного адаптера. После завершения работы программы ПК возвращается в текстовый режим.

Настройка графических процедур на работу с конкретным адаптером достигается за счет подключения нужного графического драйвера. Драйвер - это специальная программа, осуществляющая управление теми или иными техническими средствами ПК. Графический драйвер, как это не трудно догадаться, управляет дисплейным адаптером в графическом режиме. Графические драйверы разработаны фирмой Borland практически для всех типов адаптеров. Обычно они располагаются на диске в отдельном подкаталоге BGI в виде файлов с расширением BGI (от англ.: Borland Graphics Interface - графический интерфейс фирмы Borland). Например, CGA.BGI - драйвер для CG4-адаптера, EGA VGA.BGI - драйвер для адаптеров EGA и VGA и т.п.

Выпускаемые в настоящее время ПК оснащаются адаптерами, разработанными фирмой IBM, или совместимыми с ними. В этом режиме экран дисплея рассматривается как совокупность очень близко расположенных точек - пикселей, светимостью которых можно управлять с помощью программы.

Графические возможности конкретного адаптера определяются разрешением экрана, т.е. общим количеством пикселей, а также количеством цветов (оттенков), которыми может светиться любой из них. Кроме того, многие адаптеры могут работать с несколькими графическими страницами. Графической страницей называют область оперативной памяти, используемая для создания «карты» экрана, т.е. содержащая информацию о светимости (цвете) каждого пикселя.

Процедура InitGraph. Инициирует графический режим работы адаптера. Заголовок процедуры:

Procedure InitGraph(var Driver,Mode: Integer; Path: String);

Здесь Driver - переменная типа Integer, определяет тип графического драйвера; Mode - переменная того же типа, задающая режим работы графического адаптера; Path - выражение типа String, содержащее имя файла драйвера и, возможно, маршрут его поиска.

К моменту вызова процедуры на одном из дисковых носителей информации должен находиться файл, содержащий нужный графический драйвер. Процедура загружает этот драйвер в оперативную память и переводит адаптер в графический режим работы. Тип драйвера должен соответствовать типу графического адаптера.

Пусть, например, драйвер CGA.BGI находится в каталоге TP\BGI на диске С и устанавливается режим работы 320x200 с палитрой 2. Тогда обращение к процедуре будет таким:

Uses Graph;

var

Driver, Mode: Integer;

begin

Driver:= CGA;{Драйвер}

Mode:= CGAC2;{Режим работы}

InitGraph(Driver, Mode,' С:\TP\BGI');

.......

Если тип адаптера ПК неизвестен или если программа рассчитана на работу с любым адаптером, используется обращение к процедуре с требованием автоматического определения типа драйвера:

Driver:= Detect;

InitGraph(Driver, Mode, 'C:\TP\BGI');

После такого обращения устанавливается графический режим работы экрана, а при выходе из процедуры переменные Driver и Mode содержат целочисленные значения, определяющие тип драйвера и режим его работы. При этом для адаптеров, способных работать в нескольких режимах, выбирается старший режим, т.е. тот, что закодирован максимальной цифрой. Так, при работе с CGA -адаптером обращение к процедуре со значением Driver = Detect вернет в переменной Driver значение 1 (CGA) и в Mode -значение 4 (CGAHi), а такое же обращение к адаптеру VGA вернет Driver = 9 (VGA) и Mode = 2 (VGAHi).

Функция GraphResult. Возвращает значение типа Integer, в котором закодирован результат последнего обращения к графическим процедурам. Если ошибка не обнаружена, значением функции будет ноль, в противном случае - отрицательное число, имеющее следующий смысл:

const

grOk = 0;{Нет ошибок}

grlnitGraph =-1;{He инициирован графический режим}

grNotDetected =-2;{Не определен тип драйвера}

grFileNotFind =-3;{Не найден графический драйвер}

grlnvalidDriver =-4;{Неправильный тип драйвера}

grNoLoadMem =- 5;{Нет памяти для размещения драйвера}

grNoScanMem = - 6;{Нет памяти для просмотра областей}

grNoFloodMem =- 7;{Нет памяти для закраски областей}

grFontNotFound = -8;{Не найден файл со шрифтом}

grNoFontMem =- 9;{Нет памяти для размещения шрифта}

grlnvalidMode =-10;{Неправильный графический режим}

grError =-11;{Общая ошибка}

grIOError =-12;{Ошибка ввода-вывода}

grlnvalidFont =-13;{Неправильный формат шрифта}

grInvalidFontNum=-14; {Неправильный номер шрифта}

После обращения к функции GraphResult признак ошибки сбрасывается, поэтому повторное обращение к ней вернет ноль.

Функция GraphErrorMsg.

Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок функции:

Function GraphErrorMsg(Code: Integer): String;

Здесь Code - код ошибки, возвращаемый функцией GraphResult.

Например, типичная последовательность операторов для инициации графического режима с автоматическим определением типа драйвера и установкой максимального разрешения имеет следующий вид:

var

Driver, Mode, Error:Integer;

begin

Driver:= Detect;{Автоопределение драйвера}

InitGraph(Driver, Mode,' ');{Инициируем графику}

Error:= GraphResult;{Получаем результат}

if Error <> grOk then{Проверяем ошибку}

begin{Ошибка в процедуре инициации}

WriteLn(GraphErrorMsg(Error));{Выводим сообщение}

.......

end

else{Нет ошибки}

.......

Чаще всего причиной возникновения ошибки при обращении к процедуре InitGraph является неправильное указание местоположения файла с драйвером графического адаптера (например, файла CGA.BGI для адаптера CGA). Настройка на местоположение драйвера осуществляется заданием маршрута поиска нужного файла в имени драйвера при вызове процедуры InitGraph. Если, например, драйвер зарегистрирован в подкаталоге DRIVERS каталога PASCAL на диске D, то нужно использовать вызов:

InitGraph(Driver, Mode, 'd:\Pascal\Drivers');

Замечание. Во всех следующих примерах процедура InitGraph вызывается с параметром Driver в виде пустой строки. Такая форма обращения будет корректна только в том случае, когда нужный файл графического драйвера находится в текущем каталоге. Для упрощения повторения примеров скопируйте файл, соответствующий адаптеру вашего ПК, в текущий каталог.

Процедура CloseGraph.

Завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана. Заголовок:

Procedure CloseGraph;

Процедура RestoreCRTMode.

Служит для кратковременного возврата в текстовый режим. В отличие от процедуры CloseGraph не сбрасываются установленные параметры графического режима и не освобождается память, выделенная для размещения графического драйвера. Заголовок:

Procedure RestoreCRTMode;

Функция GetGraphMode.

Возвращает значение типа Integer, в котором содержится код установленного режима работы графического адаптера. Заголовок:

Function GetGraphMode: Integer;

Процедура SetGraphMode.

Устанавливает новый графический режим работы адаптера. Заголовок:

Procedure SetGraphMode(Mode: Integer);

Здесь Mode - код устанавливаемого режима.

Следующая программа иллюстрирует переход из графического режима в текстовый и обратно:

Uses Graph;

var.

Driver, Mode, Error: Integer;

begin

{Инициируем графический режим}

Driver:= Detect;

InitGraph(Driver, Mode, '');

Error:= GraphResult; {Запоминаем результат}

i£ Error <> grOk then {Проверяем ошибку}

WriteLn(GraphErrorMsg(Error)) {Есть ошибка}

else

begin {Нет ошибки}

WriteLn ('Это графический режим');

WriteLn ('Нажмите "Enter"...':20);

ReadLn;

{Переходим в текстовый режим}

RestoreCRTMode;

WriteLn (' А это текстовый...');

ReadLn;

{Возвращаемся в графический режим}

SetGraphMode (GetGraphMode);

WriteLn ('Опять графический режим...');

ReadLn;

CloseGraph

end

end.

В этом примере для вывода сообщений как в графическом, так и в текстовом режиме используется стандартная процедура WriteLn. Если Ваш ПК оснащен нерусифицированным адаптером CGA, вывод кириллицы в графическом режиме таким способом невозможен, в этом случае замените соответствующие сообщения так, чтобы использовать только латинские буквы.

Процедура DetectGraph.

Возвращает тип драйвера и режим его работы. Заголовок:

Procedure DetectGraph(var Driver,Mode: Integer);

Здесь Driver - тип драйвера; Mode - режим работы.

В отличие от функции GetGraphMode описываемая процедура возвращает в переменной Mode максимально возможный для данного адаптера номер графического режима.

Функция GetDriverName.

Возвращает значение типа String, содержащее имя загруженного графического драйвера. Заголовок:

Function GetDriverName: String;

Функция GetMaxMode.

Возвращает значение типа Integer, содержащее количество возможных режимов работы адаптера. Заголовок:

Function GetMaxMode: Integer;

Функция GetModeName.

Возвращает значение типа String, содержащее разрешение экрана и имя режима работы адаптера по его номеру. Заголовок:

Function GetModName(ModNumber: Integer): String;

Здесь ModNumber - номер режима.

Следующая программа после инициации графического режима выводит на экран строку, содержащую имя загруженного драйвера, а также все возможные режимы его работы.

Uses Graph;

var

a,b: Integer;

begin

a:= Detect;

InitGraph(a, b, '');

WriteLn(GetDriverName);

for a:= 0 to GetMaxMode do

WriteLn(GetModeName(a):10);

ReadLn;

CloseGraph

end.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.)