InitWindow(TGrInitData) Method
Megnyit egy grafikus ablakot, és előkészíti a grafikus üzemmódot, egy részletesebb paraméterlista alapján.
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őnT
op:
az ablak bal felső sarkának Y koordinátája a képernyőnWidth:
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ímeFlags:
az ablak létrehozási beállításait tartalmazó halmaz (TGrFormFlags
típus)
Return Value
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;