InitGraph

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání

Inicializuje grafický systém a přepne hardware do grafického režimu.

Deklarace
procedure InitGraph(var GraphDriver:Integer; var GraphMode: Integer; PathToDriver: string);
Režim
Reálný, Chráněný
Poznámky
Pokud je parametr GraphDriver rovný Detect, volají se jakékoli uživatelsky definované autodetekční rutiny a potom DetectGraph. Je-li zjištěn grafický hardware, inicializuje se příslušný driver a zvolí se grafický režim.
Nenulová hodnota parametru GraphDriver je považována za číslo driveru. Tento driver je pak zvolen a systém je uveden do grafického režimu, určeného parametrem GraphMode. Pokud tedy takto zabráníte autodetekci, musíte zároveň specifikovat pro požadovaný driver platný parametr GraphMode.
PathToDriver udává adresářovou cestu, kde lze najít grafické drivery. Pokud je PathToDriver rovno , musejí být soubory s drivery v aktuálním adresáři.
Normálně InitGraph zavede grafický driver z příslušného souboru .BGI na disku do paměti, alokované voláním GraphGetMem. Alternativou k tomuto dynamickému způsobu zavádění je přilinkovat driverový(é) soubor(y) přímo do vykonatelného souboru programu.
To provedete tak, že nejprve převedete soubor .BGI na soubor .OBJ (pomocným programem BINOBJ), poté umístíte volání procedury RegisterBGIdriver do zdrojového textu (ještě před volání InitGraph), čímž se driver(y) budou registrovat. Při sestavování programu musíte přilinkovat soubory .OBJ pro všechny registrované drivery. Můžete také zavést driver na haldu (heap) a pak jej zaregistrovat pomocí RegisterBGIdriver.
Jestliže je paměť pro grafický driver alokovaná na haldě pomocí GraphGetMem, bude automaticky uvolněna při volání procedury CloseGraph.
Po volání InitGraph je GraphDriver nastaven na aktuální grafický driver a GraphMode je nastaven na aktuální grafický režim.
Pokud dojde k chybě, GraphDriver i GraphResult (funkce) vrátí jednu z těchto hodnot konstant grXXXX: grNotDetected, grFileNotFound, grInvalidDriver, grNoLoadMem nebo grInvalidMode.
Viz také
CloseGraph
DetectGraph
GraphResult
RestoreCrtMode
SetGraphBufSize
SetGraphMode


Vzorový příklad

{Initgrf.PAS}
{Vzorový příklad pro proceduru Initgrf.}
uses Graph;
var
  grDriver: Integer;
  grMode: Integer;
  ErrCode: Integer;
begin
  grDriver := Detect;
  InitGraph(grDriver, grMode,' ');
  ErrCode := GraphResult;
  if ErrCode = grOk then
  begin  { Udělat nějakou grafiku }
    Line(0, 0, GetMaxX, GetMaxY);
    Readln;
    CloseGraph;
  end
  else
    Writeln('Chyba grafiky: ', GraphErrorMsg(ErrCode));
end.