A párbeszédablakok használata

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Book.png


Az Apache OpenOffice 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ása

A párbeszédablakokat az Apache OpenOffice párbeszédablak-szerkesztőjével hozhatjuk létre és alakíthatjuk ki:

Párbeszédablakok létrehozása és alakítása a párbeszédablak-szerkesztővel

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ó.

Címkét és listát tartalmazó párbeszédablak

A párbeszédablakok a következő kóddal nyithatók meg:

Dim Dlg As Object

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.DlgDef)
Dlg.Execute()
Dlg.dispose()

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. 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 felszabadítja a programfutás befejezésekor.

Párbeszédablakok bezárása

Bezárás az OK vagy a Mégse gombbal

Ha 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.

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.

Dim Dlg As Object

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog)
Select Case Dlg.Execute() 
Case 1:
  MsgBox "OK gombra kattintás"
Case 0: 
  MsgBox "Mégse gombra kattintás"
End Select

Bezárás a címsor Bezárás gombjával

A 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ással

A megnyitott párbeszédablak az endExecute metódussal is bezárható:

Dlg.endExecute()

Az egyes vezérlőelemek elérése

A 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.

Dim Ctl As Object

Ctl = Dlg.getControl("MyButton")
Ctl.Label = "New Label"

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.

Documentation note.png Az Apache OpenOffice Basic azonosítóival ellentétben a vezérlőelemek nevében a kis- és nagybetűk különbözőnek számítanak.

Munka a párbeszédablakok és a vezérlőelemek modelljével

Az Apache OpenOffice 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 az Apache OpenOffice többi API-területén. Az API elemei mind a nézeten, mind a modellen 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.

Dim cmdNext As Object

cmdNext = Dlg.getControl("cmdNext")
cmdNext.Model.Enabled = False

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.


Content on this page is licensed under the Public Documentation License (PDL).



Personal tools