A párbeszédablakok használata

From Apache OpenOffice Wiki
Jump to: navigation, search
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