![]() |
![]() |
| |||||
Fejezet 11PárbeszédablakokA StarOffice dokumentumokat saját párbeszédablakokkal és űrlapokkal bővíthetjük. Ezek viszont StarOffice Basic makrókhoz csatolhatók, így jelentősen kiterjeszthető a StarOffice Basic felhasználási köre. A párbeszédablakok például adatbázis adatait jeleníthetik meg, vagy lépésenként végigvezethetnek egy új dokumentum létrehozásának eljárásán az Űrlaptündér segítségével. A párbeszédablakok használataA StarOffice Basic párbeszédablakai olyan önálló ablakok, amelyek szövegmezőket, listákat, választókapcsolókat és más vezérlőelemeket tartalmazhatnak. Párbeszédablakok létrehozásaA párbeszédablakok létrehozása és kialakítása a StarOffice párbeszédablak-szerkesztő segítségével történik, amely a StarOffice Draw programhoz hasonlóan használható: ![]() Lényegében a használni kívánt vezérlőelemeket a tervezőpalettáról (jobbra) áthúzzuk a párbeszédablak-területre, ahol megadhatjuk ezek helyét és méretét. A példában egy címkét és egy listát tartalmazó párbeszédablak látható. ![]() A párbeszédablakok a következő kóddal nyithatók meg:
A CreateUnoDialog egy Dlg nevű objektumot hoz létre, amely a kapcsolódó párbeszédablakra hivatkozik. A párbeszédablak létrehozása előtt biztosítani kell, hogy az általa használt programkönyvtár (a példában ez a Standard) be legyen töltve. Ha ez nincs így, a LoadLibrary metódus végrehajtja ezt a feladatot. A Dlg objektum inicializálása után az Execute metódussal megjeleníthetjük a párbeszédablakot. A párbeszédablakok, így a példában szereplő is, viselkedése modális, azaz bezárásukig nem tesznek lehetővé más programműveletet. Amíg a párbeszédablak nyitva van, a program az Execute hívás állapotában marad. A kód végén lévő dispose metódus a párbeszédablak által használt erőforrásokat engedélyezi a programfutás befejezésekor. Párbeszédablakok bezárásaBezárás az OK vagy a Mégse gombbalHa a párbeszédablak tartalmaz egy OK vagy egy Mégse gombot, az ezek bármelyikére kattintás automatikusan bezárja a párbeszédablakot. A gombok használatáról a további tudnivalók a Párbeszédablakok vezérlőelemeinek részletes ismertetése című részben olvashatók ebben a fejezetben. Ha egy párbeszédablakot az OK gombra kattintással zárunk be, az Execute metódus visszatérési értéke 1 lesz, egyébként a metódus a 0 értéket adja vissza.
Bezárás a címsor Bezárás gombjávalA párbeszédablakok a címsorban található Bezárás gombra kattintással is bezárhatók. Ebben az esetben a párbeszédablak Execute metódusa ugyanúgy a 0 értéket adja vissza, mintha a Mégse gombra kattintottunk volna. Bezárás explicit programhívássalA megnyitott párbeszédablak az endExecute metódussal is bezárható:
Az egyes vezérlőelemek eléréseA párbeszédablakok tetszőleges számú vezérlőelemet tartalmazhatnak. Ezek a vezérlőelemek a getControl metódussal érhetők el, amely a vezérlőelem nevét adja vissza.
Ez a kód meghatározza a MyButton vezérlőelem objektumát, majd az elemre hivatkozással ennek értékére állítja be a Ctl objektumváltozót. Végül a kód a vezérlőelem Label tulajdonságához a New Label értéket rendeli. Megjegyzés - A StarOffice Basic a vezérlőelemek nevében különbséget tesz a kis- és a nagybetűk között. A párbeszédablakok és a vezérlőelemek Model objektumának használataA StarOffice API számos helyén előfordul a látható programelemek (View) és az ezek mögött lévő adatok vagy dokumentumok (Model) közötti megkülönböztetés. A vezérlőelemek metódusain és tulajdonságain kívül a párbeszédablak- és a vezérlőelem-objektumok is rendelkeznek egy alárendelt Model objektummal. Ez az objektum lehetővé teszi, hogy közvetlenül elérjük egy párbeszédablak vagy egy vezérlőelem tartalmát. A párbeszédablakokban az adatok és a megjelenítés közötti megkülönböztetés nem mindig olyan egyértelmű, mint a StarOffice többi API-területén. Az API elemei mind a View, mind a Model tulajdonságon keresztül elérhetők. A Model tulajdonság a párbeszédablak és a vezérlőelem-objektumok modelljének programvezérelt elérését biztosítja.
Ez a példa a cmdNtext modellobjektuma segítségével kikapcsolja a cmdNtext gomb működését a Dlg párbeszédablakban. TulajdonságokNév és címMinden vezérlőelem saját névvel rendelkezik, amely a következő modelltulajdonsággal kérdezhető le:
A következő modelltulajdonsággal megadható a párbeszédablak címsorában megjelenő felirat:
| |||||
| |||||