| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 5.15 Wie geht man mit dem Enumeration-Konzept um?
Zugriff auf unbekannte Objekte In der Regel kann man über den Namen oder den Index auf untergeordnete Objekte zugreifen. Im Beispiel mit der Tabelle geht es mit getByIndex(). Als Alternative kann auch ein Name verwendet, wenn dieser vergeben wurde. Der Befehl lautet getbyName(). Diese beiden Befehle gibt es für viele Objekte, aber nicht für alle. Es gibt untergeordneten Objekte die weder über den Namen noch über einen Index adressierbar sind. Dafür gibt es aber die Methode createEnumeration, die ein Objekt mit einer Liste aller vorhandenen Objekte bereitstellt. Dazu kommen noch die beiden Methode hasMoreElemenst() und NextElement. Mir diesem Wissen lässt sich eine Schleife über alle Objekte erstellen und diese einzeln Auswerten und gegebenenfalls ändern. Mit dieser Funktion kann sich zum Beispiel alle geöffneten Dokumente, und damit die Tabellendokumente anzeigen lassen. Sub doktypetest Dim myList as Object Dim myDoc as Object ‘Erzeugen der Objektliste mylist=stardesktop.components.createenumeration ‘Liste durchlaufen while mylist.hasmoreelements() myDoc=myList.nextelement() on error goto weiter ‘Prüfen ob es ein Tabellendokument ist. if myDoc.SupportsService("com.sun.star.sheet.SpreadsheetDocument") then msgbox("Ein Calc-Dokument") else msgbox ("Kein Calc-Dokument") end if weiter: wend end sub In diesem Beispiel bietet der Service StarDesktop.Comoponents die Schnittstelle com.sun.star.container.XEnumeration. Mit dieser kann man über createEnumeration den Service mit den einzelnen Objekten erzeugen. Dieser Service enthält die einzelnen Objekte, hier die Dokumente, und den Zugriff über die interne Auflistung. Mit den beiden Methoden hasMoreElements und nextElements kann man auf diese Objekte zugreifen. Die Enumeration-Methode ist ein wesentlicher Bestandteil der API von StarBasic. Es gibt viele Services die sich nur auf diese Weise ansprechen lassen. |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009