Ich verwende hier das Wort Elemente für die Typen/Objekte der API.
Die möglichen Elemente der API unterteilen sich in folgende:
Module:
Hierbei handelt sich um Gruppierungen der anderen Elemente. Diese Gruppierungen sind
nur
für die bessere Übersicht gedacht und haben für die Programmierung in StarBasic keinerlei
Bedeutung. Außer natürlich durch den Namen im Objekt. Achten muß man darauf, dass sich
die Module innerhalb der Dokumentation nicht immer als hilfreich erweisen. Durch die
Möglichkeit eines Service eigene Services zu verwenden, kommt es leider auch zu einigen
nicht immer sofort ersichtlichen Querverbindungen.
Ein einfaches Beispiel dazu:
Im Modul "Text" befinden sich der Services "TableRow". Dieser
hat dann aber ein Interface aus
dem Modul "Table".
Services:
Sind die eigentlichen Objekte von Starbasic. Sie können Interfaces, Structs, Enums,
Constant
Groups, Typdef, Exceptions Properties beinhalten. Und was besonders wichtig ist: Sie können
ebenfalls selber Services haben.
Interfaces:
Interfaces sind die Schnittstellen und stellen den Service die Methoden zur Verfügung.
Interfaces haben ausschließlich Methoden.
Properties:
Sind die Eigenschaften die Services haben können. Sie kommen auch nur bei den Services
vor. Es gibt zwei besonders Typen von Properties: Enum und Struct.
Ansonsten handelt es sich um Typen wie String, Integer (long oder short) oder Boolean.
Methods:
Sind Methoden die ausschließlich von Interfaces bereitgestellt werden. Wenn es sich
um
Funktionen mit einem Rückgabewert handelt, kann es sich dabei um die Typen: String, Long,
Short, Boolean, Void oder um ein Objekt (Service) handeln. Diese Typen können auch als
Array übergeben werden.
Structs:
Structs sind gruppierte Properties. Sie können nur gemeinsam an eine Propertie übergeben.
Dabei kann man einzelne Werte festlegen oder Standardwerte automatisch verwenden. Siehe
auch:
Exception:
Ist der Typ der mögliche Fehlermeldungen enthält oder übergibt den betroffenen Service
oder
das Interface als Meldung.
Enum:
Enums sind Konstanten die für einen bestimmten Kontext gebündelt worden sind. Zum
Beispiel: com.sun.star.style.ParagraphAdjust. Unterhalb von ParagraphAdjust werden die
Optionen, denen man einen Absatz einstellen kann, gebündelt (Linksbündig, Blocksatz,
Rechtsbündig, Zentriert). Der Übergabewert ist nicht dokumentiert, aber eigentlich eine
Aufzählung (eng. Enumeration) in fortlaufender Folge. Bei einigen Services kann man daher
auch mit dem passenden Integerwert die Einstellung vornehmen. Da die Dokumentation fehlt,
muß man den vollen Namen als Konstante verwenden. Hier also
"com.sun.star.style.ParagraphAdjust.LEFT" für linksbündig. Achtung: Auf Groß- und
Kleinschreibung achten. Einige dieser Enums sind mit großer Vorsicht zu verwenden, da nicht
alle dokumentierten Elemente von Enums funktionieren.
"com.sun.star.style.ParagraphAdjust.STRETCH" führt zum Beispiel, entgegen der
Dokumentation, auch zu einem linksbündigen Absatz.
Constant Groups:
Sind Gruppierungen von Konstanten. Hier kann der Namen auch nur komplett verwendet
werden. Aber in der Dokumentation stehen die Werte für diese Konstanten, die man alternativ
verwenden kann. Auch hier gilt, nicht alle sind richtig dokumentiert oder funktionieren richtig.
Zum Abschluß eine nicht ganz vollständige Übersicht: