Sun Microsystems
Termékek
 
Támogatás
 
 

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

Ez a példa a HasByName metódussal végignézi a szöveges dokumentum összes űrlapját, hogy tartalmaz-e egy SajátLista nevű vezérlőelemet. Ha az adott modell megtalálható, akkor a program menti az erre mutató hivatkozást a Ctl változóba, és a keresés befejeződik.

Az űrlap-vezérlőelemek nézetének elérése

Az űrlap-vezérlőelem nézetének eléréséhez először meg kell határozni a vezérlőelem modelljét. A vezérlőelem modellje ezután meghatározható a modell segítségével és a dokumentumvezérlő használatával.

Dim Doc As Object

Dim DocCrl As Object

Dim Forms As Object

Dim Form As Object

Dim Ctl As Object

Dim CtlView As Object

Dim I as Integer

   

Doc = StarDesktop.CurrentComponent

DocCrl = Doc.getCurrentControler()

Forms = Doc.Drawpage.Forms



For I = 0 To Forms.Count - 1

   Form = Forms.GetbyIndex(I)

   If Form.HasByName("SajátLista") Then

      Ctl = Form.GetbyName("SajátLista")

      CtlView = DocCrl.GetControl(Ctl)

      Exit Function

   End If

Next I

A példában látható kód sokban hasonlít az előző példa kódjához, például a vezérlőelem modelljének meghatározásában. Nem csak a Doc dokumentumobjektumot használja, hanem a DocCrl dokumentumvezérlő-objektumot, amely egy hivatkozás az aktuális dokumentumablakra. Ezzel a vezérlőobjektummal és a vezérlőelem modelljével a program a GetControl metódus használatával meghatározza a vezérlőelem nézetét (CtlView változó).

Az űrlap-vezérlőelemek alakzatobjektumának elérése

Az űrlap-vezérlőelemek alakzatobjektumának eléréséhez használt metódus szintén a dokumentum rajzolási szintjét használja. Egy adott vezérlőelem maghatározásához a rajzolási szint összes rajzelemét át kell nézni.

Dim Doc As Object

Dim Shape as Object

Dim I as integer

   

Doc = StarDesktop.CurrentComponent



For i = 0 to Doc.DrawPage.Count - 1

   Shape = Doc.DrawPage(i)



   If HasUnoInterfaces(Shape, _

      "com.sun.star.drawing.XControlShape") Then

      If Shape.Control.Name = "SajátLista" Then

            Exit Function

      End If

   End If

Next

Ez a példaprogram végignézi az összes rajzelemet, és ellenőrzi, hogy azok támogatják-e az űrlap-vezérlőelemekhez szükséges com.sun.star.drawing.XControlShape felületet. Amennyiben igen, a Control.Name tulajdonsággal ellenőrzi, hogy a vezérlőelem neve SajátLista-e. Ha így van, akkor a keresés befejeződik.

Vezérlőelemek méretének és helyének meghatározása

Mint ahogy azt olvashattuk, a vezérlőelemek mérete és helye megállapítható a hozzájuk tartozó alakzatobjektummal. A vezérlőelem alakzatobjektuma, akárcsak az összes többi alakzatobjektum, rendelkezik egy Size és egy Position tulajdonsággal ehhez:

  • Size (struktúra) - a vezérlőelem mérete (com.sun.star.awt.Size adatstruktúra).

  • Position (struktúra) - a vezérlőelem helye (com.sun.star.awt.Point adatstruktúra).

A következő példa bemutatja, hogyan állítható be egy vezérlőelem helye és mérete az alakzatobjektum használatával:

Dim Shape As Object



Point.x = 1000

Point.y = 1000

Size.Width = 10000

Size.Height = 10000



Shape.Size = Size

Shape.Position = Point

Ahhoz, hogy működjön a kód, a vezérlőelem alakzatobjektumának már ismertnek kell lennie. Ha nem így lenne, akkor azt be kell állítani az előző példában látható kóddal.

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