Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Включение драйвера и шрифтов осуществляется по следующей общей схеме. Сначала с помощью вспомогательной программы 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,p^,FileSize(f)){Читаем файл}

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

end.

Контрольные вопросы:

1. Назначение библиотеки GRAPH

2. Назначение и использование процедуры InitGraph.

3. Назначение и использование функции GraphResult.

4. Назначение и использование функции GraphErrorMsg.

5. Назначение и использование процедуры CloseGraph.

6. Назначение и использование функций GetMaxX и GetMaxY.

7. Назначение и использование процедуры SetViewPort.

8. Назначение и использование процедуры MoveTo.

9. Назначение и использование процедуры ClearDevice.

10. Назначение и использование процедуры ClearViewPort.

11. Назначение и использование процедуры PutPixel.

12. Назначение и использование процедуры Line.

13. Назначение и использование процедуры LineTo.

14. Назначение и использование процедуры SetLineStyle.

15. Назначение и использование процедуры Rectangle.

16. Назначение и использование процедуры DrawPoly.

17. Назначение и использование процедуры Circle.

18. Назначение и использование процедуры SetColor.

19. Назначение и использование процедуры SetBkColor.

20. Назначение и использование функции GetBkColor.

21. Назначение и использование процедуры SetFillStyle.

22. Назначение и использование процедуры SetFillPattern.

23. Назначение и использование процедуры FloodFill.

24. Назначение и использование процедуры Bar.

25. Назначение и использование процедуры Ваr3D.

26. Назначение и использование процедуры FillPoly.

27. Назначение и использование процедуры OutText.

28. Назначение и использование процедуры OutTextXY.

29. Назначение и использование процедуры SetTextStyle.

30. Назначение и использование функции TextWidth.

31. Назначение и использование функции TextHeight.


Заключение

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

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

Другим аспектом заданий, выполняемых в рамках практических заданий, является освоение принципов модульного программирования, предполагающего группировку составных частей программы (на данном этапе обучения – процедур и функций) в модули, что также является составной частью структурного программирования. Само понятие модулей неразрывно связано с объектно-ориентированным программированием, использующим иерархию объектов (классов), описанных различных модулях.

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


Список литературы

1. Фаронов В.В. Turbo Pascal 7.0: учебный курс. Учебное пособие для ВУЗов. КноРус, 2009 г

2. Фаронов В.В. Turbo Pascal 7.0. практика программирования.(изд:7). КноРус, 2009 г

3. Фаронов В.В. Turbo Pascal. Учебное пособие для ВУЗов. Питер, 2009 г

4. Ван Тассел, Д. Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1981

5. Перминов Р.С. Программирование на языке Паскаль. М.: Мир, 1995 г.

6. Титовская Н.В. Титовский С.Н. Программирование. Методические указания к лабораторным работам Красноярск.: КрасГАУ, 2009 г.

7. Меняев,М.Ф. Информатика и основы программирования: учеб.пособие/ Меняев,М.Ф.. -3-е изд.,стер.. -М.: Омега-Л, 2007. -458 с.

8. Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник. – М.: Финансы и статистика, 2000. – 352 с.

9. Вендров А.М. Практикум по проектированию программного обеспечения экономических информационных систем: Учеб. пособие. – М.: Финансы и статистика, 2002. – 192 с.

10. Орлов С.А. Технологии разработки программного обеспечения: Учебник. – СПб.: Питер, 2002. – 464 с.

11. Одинцов И.О. Профессиональное программирование. Системный подход. – СПб.: БХВ-Петербург, 2002. – 512 с.

12. М. Зелковиц А. Шоу, Дж. Гэннон Принципы разработки программного обеспечения: Пер. с англ. –М.: Мир, 1992. –368 с.

13. А.Я. Архангельский Программирование в Delphi 5 2-е изд., перераб. и дополн. – М.: ЗАО «Издательство БИНОМ», 2000г. 1072с.

14. http://www.citforum.ru/programming/

15. http://www.cyberforum.ru/programming-theory/

16. http://pascal.sources.ru/articles/





Дата публикования: 2014-11-04; Прочитано: 389 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...