Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация графического режима 
:(
    Опции темы
roalang
Дата 6.11.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Не могу понять в чем загвозка, не могу инициализировать графический режим.
Код

  Gd := Detect; 
   InitGraph(Gd, Gm, '');       {Инициализация графического режима} 
   If GraphResult <> grOk Then 
      Halt(1); 


 Да даже тупо прописывая путь к BGI, пишет ошибку.
Код

gd:= detect;
Initgraph(gd, gm, 'c:\program files\TP7\bgi');

PM MAIL   Вверх
UserNet
Дата 6.11.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 13.12.2006
Где: Новосибирск

Репутация: нет
Всего: 3



 
Цитата

c:\program files\TP7\bgi 

Нельзя DOs не воспринимет имена каталогов длинее 8 символов и преобразует их (program files).
PM MAIL   Вверх
volvo877
Дата 6.11.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(roalang @  6.11.2008,  08:49 Найти цитируемый пост)
не могу инициализировать графический режим.

Если BGI-файл лежит в текущей директории (рядом с исходником) - проблем быть не должно... Если не лежит - то положи... Иначе проблемы начнутся при переносе на другой компьютер (где гарантия, что там BGI лежит по тому же адресу?)
PM MAIL   Вверх
Virtuals
Дата 6.11.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: нет
Всего: 11



roalang
красным самое вкусное, цитата из хелпа тп7  smile 
Цитата

 InitGraph (процедура)    (модуль Graph)
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Инициализирует графическую систему и переводит
видеокарту в графический режим.

 Объявление:
 Procedure InitGraph (Var GraphDriver : Integer; Var GraphMode : Integer;
                                                  PathToDriver : String);

 Режим:
Real, Protected

 Замечания:
Если значение параметра GraphDriver равно
Detect, то производится обращение к любым
определяемым пользователем подпрограммам
автоматического определения, а затем
вызывается функция DetectGraph. Если
графическое аппаратное обеспечение обнаружено,
то инициализируется соответствующий
графический драйвер, и включается графический
режим.

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

Параметр PathToDriver определяет путь к
каталога, где находится нужный графический
драйвер. Если строка PathToDriver равна пустой
строке, то поиск файла драйвера производится в
текущем каталоге.

Обычно, InitGraph загружает графический
драйвер, рапределяя память для него через
обращение к GraphGetMem, а затем загружает
соответствующий *.BGI файл с диска. Как
вариант такой динамической схемы загрузки, вы
можете встроить файл драйвера (или несколько
файлов) непосредственно в исполняемый файл
вашей програмы.

Это можно сделать так:
 1. Преобразуйте  *.BGI  файл  в  *.OBJ  файл
    (используя  утилиты  BINOBJ  или  BGIOBJ)
 2. В тексте  программы  поместите  обращение
    к функции RegisterBGIDriver перед вызовом
    InitGraph для того, чтобы зарегистрировать
    графический драйвер.

Когда вы формируете вашу программу, вы должны
скомпоновать с ней *.OBJ файлы для
зарегистрированных драйверов. Вы можете также
загрузить BGI драйвер в кучу, а затем
зарегистрировать его вызвав функцию
RegisterBGIDriver.


Если в куче была распределена память для
графического драйвера с использованием
процедуры GraphGetMem, то при вызове процедуры
CloseGraph она будет освобождена.

После вызова InitGraph, значение переменной
GraphDriver устанавливается к значению
текущего графического драйвера, а значение
GraphMode устанавливается к значению текущего
графического режима.

Если происходит ошибка, то в переменной
GraphDriver и в функции GraphResult будет
возвращена одна из следующих grXXXX констант:
grNotDetected, grFileNotFound,
grInvalidDriver, grNoLoadMem или
grInvalidMode.

 Смотри также:
 CloseGraph
 DetectGraph
 GraphResult
 RestoreCrtMode
 SetGraphBufSize
 SetGraphMode

 Пример:
 InitGrf.PAS

 {Initgrf.PAS}
▀▀▀▀▀▀▀▀▀▀▀▀▀▀
{ Пример программы для процедуры InitGraph }

Uses Graph;

Var grDriver : Integer;
      grMode : Integer;
     ErrCode : Integer;

Begin
 grDriver:=Detect;
 InitGraph(grDriver, grMode, '');
 ErrCode:=GraphResult;
 If ErrCode = grOk Then
  Begin
   { Графика }
   Line(0, 0, GetMaxX, GetMaxY);
   ReadLn;
   CloseGraph;
  End
 Else WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode));
End.



Добавлено через 3 минуты и 19 секунд
Код

...
 {$L bgi256.obj}
...
 Procedure Bgi256;External;
...
 CONSTRUCTOR GR256_3.Init;
 var
  Driver,
  ErrCode: Integer;

 begin
   if Fl_Init then exit;
   Driver := InstallUserDriver('bgi256',nil);
   if RegisterBGIdriver(@Bgi256) < 0 then
     begin
       Writeln('Error registering driver: ',
       GraphErrorMsg(GraphResult));
    exit;
     end;
   if GraphResult <> grOk then
     begin
       Writeln('Error installing Driver');
    exit;
     end;
  InitGraph(Driver, ModeG256, '');
  ErrCode := GraphResult;
  if ErrCode <> grOk then
  begin
    Writeln('Error during Init: ',GraphErrorMsg(ErrCode));
    exit;
  end;
    Fl_Init:=True;

end;{CONSTRUCTOR GR256_3.Init}


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1005 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.