RegisterBGIdriver: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(Žádný rozdíl)
|
Verze z 4. 10. 2012, 16:31
Zaregistruje v grafickém systému driver BGI, který byl zaveden uživatelem nebo přilinkován.
- Deklarace
function RegisterBGIdriver(driver: pointer): Integer;
- Režim
- Reálný, Chráněný
- Poznámky
- Driver musí být zaregistrován před voláním InitGraph.
- V případě chyby vrací funkce hodnotu menší než 0, jinak vrací interní číslo driveru.
- Tato funkce umožňuje uživateli zavést do paměti soubor s driverem a "zaregistrovat" driver předáním jeho umístění v paměti funkci RegisterBGIdriver. Pokud tento driver zadáte jako parametr v InitGraph, bude používán tento registrovaný driver (a nebude zaváděn z disku jednotkou Graph). Uživatelem registrované drivery mohou být buď zaváděny z disku na haldu (heap), nebo konvertovány do souboru .OBJ (pomocí programu BINOBJ.EXE) a přilinkovány přímo do souboru .EXE.
- Pokud není rozpoznána hlavička driveru, vrátí se grInvalidDriver.
- Následující program zavede driver pro adaptér CGA na haldu, zaregistruje jej v grafickém systému a zavolá InitGraph:
program LoadDriv; uses Graph; var Driver, Mode: Integer; DriverF: file; DriverP: Pointer; begin { Otevření souboru s driverem, načtení do paměti, registrace } Assign(DriverF, 'CGA.BGI'); Reset(DriverF, 1); GetMem(DriverP, FileSize(DriverF)); BlockRead(DriverF, DriverP^, FileSize(DriverF)); if RegisterBGIdriver(DriverP) < 0 then begin Writeln('Chyba při registrování driveru: ', GraphErrorMsg(GraphResult)); Halt(1); end; { Inicializace grafiky } Driver := CGA; Mode := CGAHi; InitGraph(Driver, Mode, ); if GraphResult < 0 then Halt(1); OutText('Driver zaveden uživatelským programem'); Readln; CloseGraph; end.
- Tento program nejprve zavede soubor s driverem CGA z disku a zaregistruje jej u jednotky Graph. Potom se inicializuje grafický režim zavoláním InitGraph. Možná budete chtít zabudovat jeden či více driverových souborů přímo do souboru .EXE. Pokud tak učiníte, grafické drivery, které váš program potřebuje, budou vestavěné a k běhu programu bude potřeba jen soubor .EXE. Postup zabudování driveru do souboru .EXE je jednoduchý:
- Driverový(é) soubor(y) zpracujte programem BINOBJ.
- Výsledný(é) soubor(y) .OBJ přilinkujte do vašeho programu.
- Před voláním InitGraph přilinkovaný(é) driverový(é) soubor(y) zaregistrujte.
- Viz také
- InitGraph
Vzorový příklad
{RgBGIdrv.PAS} { Vzorový příklad pro funkci RegisterBGIDriver.} uses Graph; var Driver, Mode: Integer; DriverF: file; DriverP: pointer; begin { Otevírá soubor driveru,čte,zaznamená } Assign(DriverF, 'CGA.BGI'); Reset(DriverF, 1); GetMem(DriverP, FileSize(DriverF)); BlockRead(DriverF, DriverP^, FileSIze(DriverF)); if RegisterBGIdriver(DriverP) < 0 then begin WriteLn('Chyba registrace driveru: ', GraphErrorMsg(GraphResult)); Halt(1); end; { Inicializace grafiky } Driver := CGA; Mode := CGAHi; InitGraph(Driver, Mode,' '); if GraphResult < 0 then Halt(1); OutText('Driver zaveden programem'); ReadLn; CloseGraph; end.