Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő
Fejezet 11

Párbeszédablakok

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

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

A 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ó:

A StarOffice párbeszédablak-tervezője.

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

Címkét és listát tartalmazó párbeszédablak tervező módban.

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

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.


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álata

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

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.

Tulajdonságok

Név és cím

Minden vezérlőelem saját névvel rendelkezik, amely a következő modelltulajdonsággal kérdezhető le:

  • Model.Name (karakterlánc) - a vezérlőelem neve

A következő modelltulajdonsággal megadható a párbeszédablak címsorában megjelenő felirat:

  • Model.Title (karakterlánc) - a párbeszédablak címe (csak párbeszédablakoknál használható)

Előző Előző     Tartalom     Tárgymutató     Következő Következő