StarBasic FAQWissen, das weiterhilft.

Objekte, Methoden, Eigenschaften

Wie kann man Properties an eine Funktion übergeben?

Starbasic benötigt manchmal bei einem Aufruf einer Funktion ein Array mit bestimmten Properties. Als Beispiel verwende ich hier loadcomponentfromurl.
Der letzte Parameter bei loadcomponentfromurl besteht aus solch einem Array.

Wenn man in diesem Array nichts zu übergeben hat, kann man einen leeren Dummy verwenden. Dieser muss aber unbedingt deklariert werden.

Basic
Sub NeueDatei
Dim MyProp()
stardesktop.loadcomponentfromurl("private:factory/swriter","_blank",0,myProp())
End Sub

Wenn man aber Parameter mit MyProp übergeben muss, kann man das Struct ProbertieValues verwenden.

Basic
Sub TemplateOeffnen
Dim myProps(0) as New com.sun.star.beans.PropertyValue
  myProps(0).Name="AsTemplate"
  myProps(0).Value=true
  stardesktop.loadcomponentfromurl("file:///f:/wbmakros.sxw","_blank",0,myProps())
End Sub

Entsprechend der Anzahl der Parameter wird das Array dimensioniert.
Basic
Dim myProps(1) as New com.sun.star.beans.PropertyValue
myProps(0).Name="AsTemplate"
myProps(0).Value=false
myProps(1).Name="ReadOnly"
myProps(1).Value=true

Die möglichen Properties muss man aus der Dokumentation des Services auslesen.
In diesem Beispiel: com.sun.star.document.MediaDiscriptor.