Sun Microsystems
Termékek
 
Támogatás
 
 

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

A táblacella hasonlít a normál szövegre. Támogatja a createTextCursor felületet a TextCursor objektum létrehozásához.

CellCursor = Cell.createTextCursor()

Így a karakterek és bekezdések formázási lehetőségei automatikusan rendelkezésre állnak.

A következő példa megkeresi egy szöveges dokumentum táblázataiban a számot tartalmazó cellákat, és azok bekezdéstulajdonságát jobbra igazítottra formázza.

Dim Doc As Object

Dim TextTables As Object

Dim Table As Object

Dim CellNames

Dim Cell As Object

Dim CellCursor As Object

Dim I As Integer

Dim J As Integer



Doc = StarDesktop.CurrentComponent

TextTables = Doc.getTextTables()



For I = 0 to TextTables.count - 1

   Table = TextTables(I)

   CellNames = Table.getCellNames()



   For J = 0 to UBound(CellNames)

      Cell = Table.getCellByName(CellNames(J))

      If IsNumeric(Cell.String) Then

         CellCursor = Cell.createTextCursor()

         CellCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.RIGHT

      End If

   Next

Next

A példaprogram létrehoz egy TextTables listát, amely tartalmazza egy szöveges dokumentum összes táblázatát, amelyeket egy ciklus gyűjt ki. A StarOffice ezután létrehozza az összes táblázat cellaneveit tartalmazó listát. Ezután ezeket végignézi egy ciklussal. Ha egy cella numerikus értéket tartalmaz, akkor a program ennek megfelelően formázza. Ehhez először létrehoz egy TextCursor objektumot, amely a táblázatcella tartalmára hivatkozik, majd beállítja a táblázatcella bekezdéstulajdonságait.

Szövegkeretek

A szövegkeretek, akárcsak a táblázatok és az ábrák, TextContent objektumok. Normál szöveget tartalmazhatnak, de bárhová elhelyezhetők az oldalon, és nem részei a folyamatos szövegnek.

Mint minden TextContent objektumnál, a szövegkereteknél is meg van különböztetve a tényleges létrehozás és a dokumentumba való beszúrás.

Dim Doc As Object

Dim TextTables As Object

Dim Cursor As Object

Dim Frame As Object



Doc = StarDesktop.CurrentComponent

Cursor = Doc.Text.createTextCursor()

Frame = Doc.createInstance("com.sun.star.text.TextFrame")

Doc.Text.insertTextContent(Cursor, Frame, False)

A program létrehozza a szövegkeretet a dokumentumobjektum createInstance metódusával. Az így létrehozott szövegkeret beszúrható a dokumentumba a Text objektum insertTextContent metódusával. Ilyenkor a megfelelő com.sun.star.text.TextFrame-szolgáltatás nevét kell megadni.

A szövegkeret beszúrási pozícióját a Cursor objektum határozza meg, amely szintén végrehajtásra kerül beszúráskor.


Megjegyzés - A szövegkeretek a StarOffice-megfelelői a Wordben használt pozicionáló kereteknek. Míg a VBA a Document.Frames.Add metódust használja erre a célra, addig a StarOffice az előző eljárást használja a TextCursor objektummal, valamint a dokumentumobjektum createInstance metódusát.


A szövegkeret-objektumok számos tulajdonságot biztosítanak, amelyekkel a keret pozíciója és viselkedése befolyásolható. A tulajdonságok legtöbbje a com.sun.star.text.BaseFrameProperties szolgáltatásban van definiálva, amelyet minden TextFrame szolgáltatás támogat. A főbb tulajdonságok a következők:

  • BackColor (hosszú egész szám) - a szövegkeret háttérszíne.

  • BottomMargin (hosszú egész szám) - az alsó margó századmilliméterben.

  • LeftMargin (hosszú egész szám) - a bal margó századmilliméterben.

  • RightMargin (hosszú egész szám) - a jobb margó századmilliméterben.

  • TopMargin (hosszú egész szám) - a felső margó századmilliméterben.

  • Height (hosszú egész szám) - a szövegkeret magassága századmilliméterben.

  • Width (hosszú egész szám) - a szövegkeret szélessége századmilliméterben.

  • HoriOrient (állandó) - a szövegkeret vízszintes tájolása (a com.sun.star.text.HoriOrientation tulajdonságnak megfelelően).

  • VertOrient (állandó) - a szövegkeret függőleges tájolása (a com.sun.star.text.VertOrientation tulajdonságnak megfelelően).

A következő példa létrehoz egy szövegkeretet az előzőleg ismertetett tulajdonságok használatával:

Dim Doc As Object

Dim TextTables As Object

Dim Cursor As Object

Dim Frame As Object



Doc = StarDesktop.CurrentComponent

Cursor = Doc.Text.createTextCursor()

Cursor.gotoNextWord(False)

Frame = Doc.createInstance("com.sun.star.text.TextFrame")



Frame.Width = 3000

Frame.Height = 1000

Frame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

Frame.TopMargin = 0

Frame.BottomMargin = 0

Frame.LeftMargin = 0

Frame.RightMargin = 0

Frame.BorderDistance = 0

Frame.HoriOrient = com.sun.star.text.HoriOrientation.NONE

Frame.VertOrient = com.sun.star.text.VertOrientation.LINE_TOP



Doc.Text.insertTextContent(Cursor, Frame, False)

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