Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Ассемблер архитектура МП Ассемблерные подпрограммы Звуковые возможности управления клавиатурой Библиотека Turbo Vision графические подпрограммы Процедура InitGraph Обработчик событий Режим редактирования Видимый объект Поток События

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

Включение драйвера и шрифтов в тело программы

В Турбо Паскале имеется возможность включения графического драйвера и штриховых шрифтов непосредственно в тело программы. Такое включение делает программу независимой от местоположения и наличия на диске драйверов и шрифтов, а также ускоряет подготовку графических программ к работе (шрифты и драйвер загружаются вместе с программой).

Включение драйвера и шрифтов осуществляется по следующей общей схеме. Сначала с помощью вспомогательной программы BINOBJ.EXE, входящей в комплект поставки Турбо Паскаля, драйвер и шрифты преобразуются в OBJ-файл (файл с расширением .OBJ). Для этого вне среды Турбо Паскаля необходимо вызвать утилиту BINOBJ с тремя параметрами: именем преобразуемого файла, именем получаемого OBJ-файла и глобальным именем процедуры. Эти имена, в принципе, могут быть произвольными, правильными для MS-DOS именами. Например:

c:\tp\binobj cga.bgi cga cgadrv

В результате такого обращения из каталога ТР на диске С будет вызвана программа BINOBJ и ей будут переданы следующие параметры:

CGA.BGI - имя файла с преобразуемым драйвером;

CGA - имя файла с расширением .OBJ, т.е. CGA.OBJ, который будет получен в результате исполнения программы BINOBJ;

CGADRV- глобальное имя, под которым этот драйвер будет известен программе.

После этого можно написать следующий фрагмент программы:

Uses Graph;

Procedure CGADRV; external; 

{$L CGA.OBJ} 

var

d, r, e : Integer; 

begin

if RegisterBGIDriver (@CGADRV) < 0 then

begin

WriteLn ('Ошибка при регистрации драйвера');

halt 

end;

d := CGA; r := CGAHi; 

InitGraph (d, r, '');

.......

Как видно из этого примера, в программе объявляется внешняя процедура с именем CGADRV (глобальное имя, указанное при обращении к BINOBJ), причем дается директива компилятору отыскать в текущем каталоге и загрузить файл CGA.OBJ, в котором находится эта процедура. Затем осуществляется регистрация драйвера путем обращения к функции RegisterBGIDriver. Единственным параметром этой функции является адрес начала драйвера в памяти (@CGADRV). Функция возвращает значение типа Integer, которое служит для контроля правильности завершения процедуры регистрации драйвера: если это значение меньше нуля, обнаружена ошибка, в противном случае функция возвращает номер зарегистрированного драйвера. В примере контролируется правильность регистрации драйвера и, если ошибка не обнаружена, инициируется графический режим работы экрана.

Аналогичным образом можно присоединить к программе стандартные штриховые шрифты (матричный шрифт 8x8 входит в состав модуля Graph и поэтому присоединять его не надо). Присоединение шрифта строится по описанной схеме за тем исключением, что для его регистрации вызывается функция RegisterBGIFont. Например, после преобразования 

c:\Pascal\binobj litt.chr litt litt

можно использовать операторы

Procedure Litt;External;

{$L Litt.obj}

.......

if RegisterBGIFont (@litt) < 0 then ...

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

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

Uses Graph; 

var

р: Pointer; 

f: file; 

begin

Assign(f,'Litt.chr'); {Открываем файл} 

Reset(f,1); {LITT.CHR для чтения} 

GetMem(p,FileSize(f)) ; {Резервируем для него область кучи нужного размера}

BlockRead(f,pA,FileSize(f)){Читаем файл}

WriteLn(RegisterBGIFont (p)){Регистрируем шрифт}

end.

В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций. Этими модулями являются SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBOS и GRAPH3. Модули GRAPH, TURBOS и GRAPHS выделены в отдельные TPU-файлы, а остальные входят в состав библиотечного файла TURBO.TPL
Встроенный ассемблер, графика в Турбо Паскале Система программирования Турбо Паскаль Примеры программирования наJava