Реферат: Модуль Graph в программе Turbo Pascal
Параметр DriverPath указывает путь в каталог, содержащий файлы с необходимыми драйверами. Если в него передается значение " (пустая строка), то драйверы должны находиться в текущем каталоге. Это же значение должно передаваться DriverPath, если необходимые BGI-файлы преобразованы при помощи утилиты BINOBJ в файлы типа .OBJ, а затем скомпонованы с программой в ЕХЕ-файл.
Процедура CloseGraph . Для окончательного завершения работы в графическом режиме необходимо всегда производить вызов процедуры CloseGraph. Эта процедура не имеет параметров. Она очищает экран, переводит адаптер в текстовый режим и, если возможно, выгружает из памяти все BGI-драйверы и штриховые шрифты. Последующий возврат в графические режимы возможен только через повторную инициализацию.
Обработка ошибок инициализации
Процедура InitGraph возвращает также и результат своей работы в параметре GraphDriver. В случае ошибки он может принимать значения, приведенные в таблице.
Значение | Объяснение |
-2 | Нет графического адаптера |
-3 | Не найден файл драйвера |
-4 | Ошибка в драйвере (в его коде) |
-5 | Не хватает памяти для загрузки драйвера |
-10 | Невозможный режим для выбранного драйвера |
-15 | Нет такого драйвера |
Если же ошибок при инициализации не обнаружено, то в параметре GraphDriver возвращается номер адаптера из приведенного выше списка констант.
В модуле Graph реализован еще один способ проверки результата проведения графической операции. Он осуществляется с помощью функции
GraphResult : Integer
Эта функция возвращает код результата последнего вызова одной из процедур или функций, указанных в таблице.
Bar Bar3D ClearViewPort CloseGraph DetectGraph DrawPoly FillPoly FloodFill GetGraphMode |
ImageSize InitGraph InstallUserDriver InstallUserFont PieStice RegisterBGIdriver RegisterBGIfont SetAllPalette |
SetFillPattern SetFillStyle SetGraphBufSize SetGraphMode SetLineStyle SetPalette SetText Justify SetTextStyle |
Таблица кодов, возвращаемых GraphResult, и расшифровка их содержания приведена при описании функции GraphErrorMsg, т.к. обычно эти функции используются совместно. После одного вызова GraphResult следующий ее вызов даст нулевое значение, поэтому для дальнейшего использования результатов тестирования рекомендуется сохранять значение этой функции в какой- либо переменной.
Для быстрой выдачи простого сообщения о типе ошибки графической системы используется функция, преобразующая результат вызова функции GraphResult в сообщение, которое можно вывести процедурой Write. Эта функция объявлена как:
GraphErrorMsg (ErrorCode: Integer ): String ;
Константы кодов ошибок, определенные в модуле Graph,исоответствующие им сообщения приведены в следующей таблице.
Константа | Код | Сообщение об ошибке | Перевод и пояснение |
grOk | 0 | No error | Ошибки нет |
grNoInitGraph | -1 | (BGI) Graphics not installed (use InitGraph) | Графика не инициализирована |
grNotDetected | -2 | Graphics hardware not detcted | Графический адаптер не найден |
grFileNotFound | -3 | Device driver file not detected | BGI -файла нет в указанном каталоге |
grlnvalidDriver | -4 | Invali device driver file | BGI-файл содержит ошибочный код |
grNoLoadMem | -5 | Not enough memory to load driver | Нет места в ОЗУ для загрузки драйвера |
grNoScanMem | -6 | Out of memory in scan fill | При работе процедуры FillPoly не хватает рабочей памяти |
grNoFloodMem | -7 | Out of memory in flood fill | При работе процедуры FloodFill не хватает рабочей памяти |
grFontNotFound | -8 | Font file not found | CHR -файла нет в указанном каталоге |
grNoFontMem | -9 | Not enough memory to load font | Нет места в ОЗУ для загрузки шрифта |
grlnvalidMode | -10 | Invalid Graphics mode for selected driver | Невозможный режим для выбранного драйвера |
grError | -11 | Graphics error | Ошибка графики |
grIOError | -12 | Graphics I/O error | Ошибка ввода-вывода графики |
grInvalidFont | -13 | Invalid font fite | В файле шрифта неправильный код |
grInvalidFontNum | -14 | Invalid font number | Несуществующий номер шрифта |
grInvalidDeviceNum | -15 | Invalid device number | Несуществующий номер адаптера |
Простейший блок инициализации графического режима в программе может выглядеть, как показано в следующем примере.
Uses Graph;
Procedure GrInit;
Var
GraphDriver: Integer;
GraphMode: Integer;
ErrorCode: Integer;
Begin