русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Обработка ошибок инициализации


Дата добавления: 2015-06-12; просмотров: 641; Нарушение авторских прав


Процедура InitGraph возвращает также и результат своей работы в параметре GraphDriver. В случае ошибки он может принимать значения, приведенные в табл. 19.1.

таблица 19.1.

Значение Объяснение
-2 Нет графического адаптера
-3 Не найден файл драйвера
-4 Ошибка в драйвере (в его коде) {408}
-5 Не хватает памяти для загрузки драйвера
-10 Невозможный режим для выбранного драйвера.
-15 Нет такого драйвера

Если же ошибок при инициализации не обнаружено, то в параметре GraphDriver возвращается номер адаптера из приведенного в разд. 19.2.1.1 списка констант.

В модуле Graph реализован еще один способ проверки результата проведения графической операции. Он осуществляется с помощью функции

GraphResult : Integer

которая возвращает код результата последнего вызова одной из процедур или функций, указанных в табл. 19.2.

Таблица 19.2

Bar ImageSize SetFillPattern Bar3D InitGraph____ SetFillStyle ClearViewPort InstallUserDriver SetGraphBufSize CloseGraph InstallUserFont SetGraphMode DetectGraph PieSlice SetLineStyle DrawPoly RegisterBGIdriver SetPalette FillPoly RegisterBGIfont SetTextJustify FloodFill SetAllPalette SetTextStyle GetGraphMode

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

Для быстрой выдачи простого сообщения о типе ошибки графической системы используется функция, преобразующая результат вызова функции GraphResult в сообщение, которое можно вывести на экран процедурой Write. Эта функция объявлена как: {409}



GraphErrorMsg(ErrorCode : Integer) : String;

Константы кодов ошибок, определенные в модуле Graph, и соответствующие им сообщения приведены в табл.19.3.

Таблица 19.3

Константа Код Сообщение об ошибке Перевод и пояснения
grOk No error Ошибки нет
grNoInitGraph -1 (BGI) Graphics not installed (use InitGraph) Графика не инициализирована
grNotDetected -2 Graphics hardware not detected Графический адаптер не найден
grFileNotFound -3 Device driver file not detected BGI-файла нет в указанном каталоге
grInvalidDriver -4 Invalid 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 Нет места в ОЗУ для загрузки шрифта
grInvalidMode -10 Invalid Graphics mode for selected driver Невозможный режим для выбранного драйвера {410}
grError -11 Graphics error Ошибка графики
grIOError -12 Graphics I/O error Ошибка ввода-вывода графики
grInvalidFont -13 Invalid font file В файле шрифта неправильный код
grInvalidFontNum -14 Invalid font number Несуществующий номер шрифта
grInvalidDeviceNum -15 Invalid device number Несуществующий номер адаптера

Простейший блок инициализации графического режима в программе может выглядеть, как показано на рис. 19.1.

USES Graph; {подключен модуль Graph} PROCEDURE GrInit; {инициализация режима графики} VAR GraphDriver : Integer; {для графического адаптера} GraphMode : Integer; {для графического режима} ErrorCode : Integer; {для кода ошибки} BEGIN GraphDriver := Detect; {режим автоопределения} InitGraph(GraphDriver, GraphMode, ‘ ‘); {инициализация} ErrorCode := GraphResult, {результат инициализации} if ErrorCode <> grOk then {если неуспешно, то…} begin WriteLn(‘Ошибка графики:)’, GraphErrorMsg(ErrorCode)); WriteLn(‘Программа остановлена’); Halt(1) end {if} END; {{==ПРИМЕР ИНИЦИАЛИЗАЦИИ}==} BEGIN GrInit; {вызов инициализации} Line(0, 0, GetMaxX,GetMaxY); {работа с графикой….} Readln; {пауза до нажатия ввода} CloseGraph {закрытие режима графики} END.

Рис. 19.1 {411}

В дальнейшем процедуру GrInit лучше записать в отдельный файл (например, INITGRAF.PAS) и использовать директиву включения этого файла при компиляции (что и сделано во всех остальных примерах). Такой блок всегда включает стандартный графический режим максимального разрешения. Однако это не всегда необходимо. На адаптере CGA, например, уменьшение разрешения дает возможность использовать большее количество цветов, а на адаптерах EGA и VGA увеличивает количество видеостраниц. Ниже мы рассмотрим процедуры, позволяющие определять тип установленного графического адаптера и режимы, которые могут быть установлены для него.



<== предыдущая лекция | следующая лекция ==>
Инициализация и закрытие графического режима | Классификация и анализ графических режимов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.547 сек.