Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ BGI-файлы?

Автор: Slim 6.02.2004 4:27

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

Автор: P@sh@ 6.02.2004 9:02

Borland Graphics Interface? что-то типа драйвера, который загружает InitGraph, чтобы работать с соответствующим графическим стандартом. Там прописан код по инициализации конкретного граф.режима и кажется рисование точки в этом режиме и что-то еще. Базовый драйвер - EGAVGA.BGI - для работы с режимами EGA и VGA - от 320х200 до 640х480 с 16-ю цветами. Есть новые драйвера - например SVGA256.BGI - те же разрешения, но в 8-битном цвете(256), но так как они не стандартные, их надо зарегистрировать перед инициализацией (RegisterBGIDriver или что-то подобное)

Автор: SKVOZNJAK 6.02.2004 12:28

Где взять? Да хотя бы здесь http://stiratel7.narod.ru/1/susnjak.zip  :) Работают и в защищённом и в реальном режиме.

Автор: trminator 6.02.2004 22:27

В дистрибутиве Паскаля должны быть. Чаще всего используется EGAVGA.BGI, весит 5 кило. Для работы с графикой нужно обзавестись GRAPH.TPU (33 кило). Если хочешь, намылю тебе.

Автор: Slim 7.02.2004 3:53

Всем большое спасибо! smile.gif
Я нарыл себе пару архивов с BGI-файлами, распаковал их, указал путь  к ним, но пока ничего не получается sad.gif
Пробные файлы с модулем Graph компилируются, но при запуске оказывается, что есть ошибка - моя видеокарта не определяется.
Будет чем заняться этой ночью smile.gif

Автор: SKVOZNJAK 7.02.2004 4:01

Попробуй для начала указать видеорежим попроще. Большая их часть вообще не требует видухи, достаточно одного видеоадаптера VGA

Автор: Slim 7.02.2004 4:59

Да я при помощи какойто тестовой проги (на каком-то сайте нашел ее текст) протестировал.
Вроде поддерживается драйвер 9 (VGA) и графический режим 2 (640х480х16).
Но сейчас попробую че-нить попроще.

Автор: Slim 7.02.2004 5:21

Попробовал!
В результате программы:

Код
USES GRAPH
VAR H,k,l: INTEGER;
BEGIN
     DetectGrahp(k,l);
     InitGraph(k,l,'d:tp7bgi');
     H:=GraphResult;
     If h=0 then write('OK') elseWrite('Error',h);
END.


пишет, что error 3 (я проситал, что это соответствует ошибке "не обнаружен файл с драйвером", хотя его адрес в команде InitGraph прописан (и что самое интересное, BGI-файлы в этой папке есть! smile.gif)
Что делать уже не знаю - наверное спать буду (главное чтоб режим 640х200х16 не приснился smile.gif

Автор: trminator 7.02.2004 15:37

ля-ля-ля снимаем флаг read-only с egavga.bgi и пишем сюда результат. Я точно до сих пор не уверен, но мне помогало.

Автор: Slim 9.02.2004 3:02

У меня наконец-то все получилось после того, как я определил путь именно к egavga.bgi (перед этим пробовал svga16.bgi) и снял флажок "только чтение" (за что отдельная благодарность trminatoru!) smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif
Еще раз всем спасибо!!!!!

Автор: Altair 9.02.2004 10:29

Как включать BGI файл в тело программы?

Автор: GLuk 9.02.2004 10:35

Юзая утилиту binobj для преобразования и линкуя директивой {$L egavga.obj}.
E.G.: binobj egavga.bgi egavga.obj

Автор: Андрей 15.02.2004 18:55

Кинь на e-mail файл     Graph.tpu, а то я свой удалил!!!!!!!!!!!!!!!!!

Автор: Altair 2.03.2004 18:25

Внимание!
Если на BGI файле стоит атрибуты:
Только чтение или архивный, то произойдет ошибка!
Проверенно!
Ктот-нибудь знает почему так происходит?

Автор: Abricko 30.03.2006 2:22

Цитата(GLuk @ 9.02.2004 6:35) *

Юзая утилиту binobj для преобразования и линкуя директивой {$L egavga.obj}.
E.G.: binobj egavga.bgi egavga.obj


А можно поподробнее, а то яне понял. у меня возникла проблема, что экзешник без egavga.bgi не пашет, выдает ошибку. Вот я и хотел бы включить его в тело программы. Дайде пожалуйста более распрстраненное объяснение. Буду крайне признателен.

Автор: volvo 30.03.2006 2:39

Abricko, читай здесь:
http://forum.pascal.net.ru/index.php?s=&showtopic=3895&view=findpost&p=34541 (о директиве $L)