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

Zurück Vor |
| 5.13 Wie geht man mit Property-Arrays um?
Der Titel ist nicht besonders gut, aber ... Es gibt Eigenschaften die über in einem Array des Typ com.sun.star.beans.PropertyValue festgelegt werden. Diese können in der Regel mit getXXX und setXXX augelesen und gesetzt werden. Als Beispiel verwende ich hier "Printer" unterhalb eines Dokumentes. Es gibt zwei Methoden und eine Property die sich um Printer drehen. Die Property ist Printer, die Methoden sind getPrinter und setPrinter Der Zugriff auf die einzelnen Werte der Property geht direkt über Printer oder über ein ausgelesenes Array. Direkter Zugriff: oDoc = thiscomponent msgbox oDoc.Printer(0).name msgbox oDoc.Printer(0).value oder als Schleife for i=1 to ubound(odoc.printer()) msgbox oDoc.Printer(i).name msgbox oDoc.Printer(i).value next Auf diese Weis können die Werte auch gesetzt werden. msgbox oDoc.Printer(0).value=1 Der Name darf natürlich nicht geändert werden. Bei dieser Art muß man natürlich den Index der zu ändernden Property kennen. Diese kann man entweder der Dokumentation entnehmen oder mit einer Funktion auslesen. Siehe Tools- >GetPropertyValAndInd Der zweite Weg geht über auslesen und zurückschreiben mit den Methoden. myProps=oDoc.getPrinter for i=1 to ubound(myProp()) msgbox myProp(i).name msgbox myProp(i).value next Analog dann einen neuen Wert zuweisen und zurück schreiben. myProp(i).value=0 odoc.setPrinter(myProp()) Da es aber Propertys gibt, die sehr umfangreich sind, langt es auch nur die zu ändernden Property neu zu setzen. Dazu muß man ein Array des Typ com.sun.star.beans.PropertyValue vorher erzeugen. Danach kann man einzelne Propertys neu setzen. Die Anderen bleiben dabei die anderen Propertys mit ihrem alten Wert erhalten. Dim newProps(0) as New com.sun.star.beans.PropertyValue newProps(0).Name="Name" newProps(0).value="Neuer Drucker" odoc.setprinter(newProps()) |
Seitenanfang |

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