InitWindow(TGrInitData) Method

Megnyit egy grafikus ablakot, és előkészíti a grafikus üzemmódot, egy részletesebb paraméterlista alapján.

Namespace: Graph
function InitWindow(const InitData: TGrInitData): integer;

Parameters

InitData
Type: TGrInitData

TGrInitData típusú rekord az alábbi mezőkkel:

  • Left: az ablak bal felső sarkának X koordinátája a képernyőn
  • Top: az ablak bal felső sarkának Y koordinátája a képernyőn
  • Width: a grafikus képernyő szélessége (pl. VGAHi esetén 640)
  • Height: a grafikus képernyő magassága (pl. VGAHi esetén 480)
  • Caption: az ablak címe
  • Flags: az ablak létrehozási beállításait tartalmazó halmaz ( TGrFormFlags típus)

Return Value

Type: integer

A létrehozott ablak sorszáma, amely használható a SetCurrentWindow , és CloseGraph eljárásokban.

A használható halmazelemek:

Term
Description

ffCanClose

Lehetővé teszi az ablak bezárását. Ha ezt bekapcsolja fontos hogy a kilépés gomb megnyomása után valóban bezáródjon a program. Ennek az egyszerű feltétele, hogy a főprogram figyelje az IsWindowClosed függvény visszatérési értékét pl. a KeyPressed mellett. Ha ez elmarad, az ablak bezáródása után a program tovább futhat pl. billentyűleütésre várva, amit soha nem fog megkapni.

ffResizeable

Ha benne van, az ablak átméretezhető lesz és valamilyen módon nyújtani fogja a képet. A teljes képernyős mód csak ekkor elérhető.

ffKeepAspectRatio

Ha benne van, a kép nyújtása a méretarányok megtartásával történik. Ennek a paraméternek csak akkor van értelme, ha az ffResizable paraméter is a halmazban van.

ffAutoFullScreen

Ha benne van, az ablak teljes méret helyett, teljes képernyős módba vált. Ekkor szükséges lehet biztosítani hogy valamely módon ki is lehessen kapcsolni azt. Ennek eléréseképp azt kell elérni hogy (pl. F11 leütésére, dupla kattintásra, stb...). meghívásra kerüljön a SetFullscreen függvény a főprogramban. Ennek a paraméternek csak akkor van értelme, ha az ffResizable paraméter is a halmazban van.

ffScreenCenter

Ha benne van, a Top és Left paraméter figyelmen kívül lesznek hagyva, és az ablak alapesetben képernyő közepére fog kerülni mindenféleképpen.

Mivel két külön ablak a grafikus, és a szöveges üzemmód ezért az eljárás ha a konzol nem volt elrejtve, beállítja kis méretbe azt, és megjeleníti az új grafikus ablakot. Ilyen módon biztosítja a KeyPressed és ReadKey megfelelő működését. Ha a konzol valamiért ilyenkor újra normál méretbe kerül, a billentyűkezelő utasítások a konzolból fogják várni a bemenetet.

var
  Data: TGrInitData;
  WindowIndex: integer;
begin
  with Data do begin
    Width := 320;
    Height := 240;
    Caption := 'Grafikus példa';
    Flags := [ffResizeable, ffKeepAspectRatio, ffScreenCenter];
  end;
  WindowIndex := InitWindow(Data);
  //...
  CloseGraph(WindowIndex);
end;

Reference