HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
23 ноября. В 1942 году (75 лет назад) - Завершается окружение 330-тысячной немецкой группировки под Сталинградом. Гитлер отдает приказ немецким армиям под Сталинградом любой ценой удерживать свои позиции.
 
 

Turbo Pascal Documentation

Функция RegisterBGIdriver


     Функция: Регистрирует в графической системе загруженный
пользователем или скомпонованный с программой драйвер форма-
та BGI (формат фирмы Борланд).
     Описание: RegisterBGIdriver(драйвер :  pointer)  :  in-
teger;
     Примечания: В случае ошибок возвращаемое значение мень-
ше  нуля.  В  противном случае возвращается внутренний номер
драйвера. Эта  программа  позволяет  пользователю  загрузить
файл  драйвера и зарегистрировать драйвер, передав его адрес
в памяти функции RegisterBGIdriver. После этого драйвер  мо-
жет  непосредственно  использоваться процедурой InitGraph, а
не загружаться с диска модулем Graph.  Драйвер  пользователя
можно загрузить с диска в динамически распределяемую область
памяти или преобразовать в  файл  .OBJ  (с  помощью  утилиты
BINOBJ.EXE),  после  чего  скомпоновать  с программой в файл
.EXE.
     Возможной возвращаемой ошибкой является grInvalidDriver
(недопустимый  графический драйвер). При этом код ошибки ра-
вен -4 и заголовок драйвера оказывается неопознанным.
     Следующая программа загружает в динаимчески распределя-
емую  область  памяти драйвер CGA, регистрирует его в графи-
ческой системе и вызывает процедуру InitGraph.

  program LoadDriv;
  uses Graph;
var
   Driver, Mode : integer;
   DriverF : file;
   DriverP : pointer;
begin
  { открыть файл драйвера, считать его в память и
   зарегистрировать }
   Assign(DriverF, 'CGA.BGI');
   Reset(DriverF, 1);
   GetMem(DriverP, FileSize(DriverF));
   if RegisterBGIdriver < 0 then
   begin
     Writeln('Ошибка регистрации драйвера: ',
              GraphErrorMSG(GraphResult));
     Halt(1);
   end;
   { инициализация графики }
   Driver := CGA;
   Mode := CGAHi;
   InitGraph(Driver,Mode,'');
   if GraphResult <> grOk then
      Halt(1);
   OutText('Драйвер загружен программой пользователя');
   Readln;
   CloseGraph;
  end.

     Эта программа начинает работу с загрузки драйвера CGA с
диска  и  регистрации  его с помощью модуля Graph. Затем для
инициализации графической системы  выполняется  обращение  к
процедуре  InitGraph. Вы можете захотеть разместить один или
более файлов непосредственно в файле .EXE. При  этом  графи-
ческие драйверы, которые требуются вашей программе, окажутся
встроенными и для работы потребуется только файл .EXE.  Про-
цесс  размещения драйвера в выполняемом файле довольно прост
и состоит в следующем:

     1.  Выполнить для файла (или файлов) программу BINOBJ.
     2.  Скомпоновать  результирующие  файлы  ,OBJ  с  вашей
         программой.
     3.  Перед вызовом процедуры Init зарегистрировать ском-
         понованные файлы (файл) драйвера.

      Более подробное описание этого процесса можно  найти  в
комментариях,   содержащихся   в   шапке   программы-примера
GRLINK.PAS на диске 3. Документация по утилите BINOBJ содер-
жится в Приложении С "Руководства пользователя".
     Имеется также возможность регистрации в системе  файлов
шрифтов (см. описание функции RegisterBGIfont).
     Аналогичная функция имеется в версии 2.0 Турбо-Си.
     Ограничения: Заметим, что драйвер должен быть зарегист-
рирован перед обращением к процедуре InitGraph. Если функция
RegisterBGIdriver вызывается, когда средства графики уже ак-
тивизированы, то возвращается значение -11 (grError).
     Прочее:    См.    также    процедуры    InitGraph     и
InstallUserDriver.




HOME