Язык:
Русский
English
RegisterBGIDriver (функция) (модуль Graph)
Передаёт графической системе указатель на драйвер устройства, находящийся в оперативной памяти, например, встроен в исполняемый файл программы.
Объявление
Function RegisterBGIDriver(Driver : Pointer) : Integer;
Режим
Real, Protected
Замечания
Драйвер должен быть зарегистрирован перед обращением к InitGraph.
Если происходит ошибка, то функция возвращает значение меньшее нуля, иначе возвращается внутренний номер драйвера в системе.
Эта подпрограмма дает возможность пользователю загрузить и зарегистрировать драйвер, передавая его расположение в памяти в функцию RegisterBGIDriver. При вызове InitGraph, будет использоваться этот драйвер, вместо загружаемого с диска модулем Graph. Зарегистрированный пользователем драйвер может быть загружен с диска в кучу (heap) или преобразован в *.OBJ файл (с помощью BINOBJ.EXE) и скомпонован с *.EXE
Возвращает ошибку grInvalidDriver, если заголовок драйвера не распознан.
Программа из примера загружает драйвер CGA драйвер в кучу, регистрирует его в графической системе и вызывает InitGraph.
Программа загружает файл драйвера CGA с диска, регистрирует его. Затем вызывается InitGraph, чтобы инициализировать графическую систему. При желании, вы можете встроить несколько драйверов непосредственно в ваш *.EXE файл. Таким образом, графические драйверы, которые необходимы для работы вашей программы, будут встроены в неё.
Встроить драйвер в вашу программу можно так:
- Запустить программу binobj.exe или bgiobj.exe на файле драйвера.
- Скомпоновать полученный *.OBJ файл с вашей программой.
- Зарегистрировать файл драйвера перед вызовом InitGraph
Смотри также
Пример
Язык:
Русский
English
{ Пример программы для функции RegisterBGIDriver }
var
Driver, Mode : Integer;
DriverF : File;
DriverP : Pointer;
begin
{ Загружаем и регистрируем файл драйвера }
Assign(DriverF, 'CGA.BGI');
Reset(DriverF, 1);
GetMem(DriverP, FileSize(DriverF));
BlockRead(DriverF, DriverP^, FileSize(DriverF));
if RegisterBGIDriver(DriverP) < 0 then
begin
WriteLn('Ошибка регистрации драйвера: ', GraphErrorMsg(GraphResult));
Halt(1);
end;
{ Инициализируем графику }
Driver := CGA;
Mode := CGAHi;
InitGraph(Driver, Mode, '');
if GraphResult < 0 then
Halt(1);
OutTextXY(GetMaxX div 2, GetMaxY div 2, 'Driver loaded successfully');
ReadLn;
CloseGraph;
end.