2.1.2 Wo finde ich Informationen zu StarBasic und API?
Leider gibt es zur Zeit keine richtig gute Quelle zur Makroprogrammierung mit Starbasic.

Erste Adresse ist natürlich die Online-Hilfe. Dort sind vor allem die Standard Befehle erklärt.

Zweite Adresse ist api.openoffice.org. Dort gibt es das ODK/SDK-Kit (OpenOffice.org.1.0.2_Beta_SDK). In der ist die komplette API dokumentiert. Außerdem gibt es dort einen Developerguide in HTML mit Verlinkung auf die API Dokumentation. Dieser beschreibt aber leider vor allem den Zugriff auf die API über Java und nicht über Starbasic. Aber man kann sich das eine oder andere dort rauslesen. Außerdem sind in diesem SDK auch Beispiele in Starbasic.

Den Developer Guide als PDF-Datei gibt es http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html.


Es gibt auch einen StarBasic Guide in deutsch von Sun inzwischen für die Version 8.0 : http://docs.sun.com/app/docs/coll/1274.1
Die deutsche Version zur VerSion 7.0 befindet sich hier: http://docs.sun.com/app/docs/doc/817- 3924


Fehler/Ungenauigkeiten im neuen StarbasicGuide:

Bemerkenswerterweise sind alle Fehler der Dokumentation zur Version 7 immer noch in der Version 8.0.
Im gesamten Text wird im Beispielcode statt dem doppelten Anführungszeichen mit dem Einfachen gearbeitet. In StarBasic müssen aber doppelte Anführungszeichen verwendet werden.

Version 8 dt. S.  59

Die Funktion Instr wird bezüglich des Parameters für die Gross- und Kleinschreibung falsch beschrieben. Um den Vergleich inkl. Groß- und Kleinbuchstabe zu verwenden muß auch der
erste Parameter für den Start der Suche auch verwendet werden.
ResultString = InStr(1,MyString, SearchString, 0)

Version 8.0 dt.S.36
Select Case über die Eingrenzung von zwei Werten:
Case Var>8 and Var<11
Geht bis jetzt noch nicht.

Version 8.0 dt. S.65
Die Funktion CurDir steht entgegen der Dokumentation nicht zur Verfügung.

Version 8.0 dt.S.95
Im Beispiel Text steht Doc.storeasUrl(sUrl, mFileproperties()), es muss aber (url,mFileproperties()) heißen.

Version 8.0 dt.S.89
Der Parameter "_hidden" wird bei loadcomponentfromurl nicht unterstützt. Wenn man das erreichen will muß man die Propertie des Mediadescriptors Hidden auf true setzen.

Dim Doc As Object
Dim Url As String
Dim Dummy(0) as New com.sun.star.beans.PropertyValue
Dummy(0).name="Hidden"
Dummy(0).value=True
Url = "file:///C:/test.sxw"
Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())


Version 8.0 dt.S.112
In dem Beispiel-Makro muß die zweite Zeile:
Cursor=Doc.Text.createTextCursor()
lauten

Version 8.0 dt.S.123
In dem Code müssen die ersten Zeilen getrennt werden.
Dim Doc As Object
Dim Table As Object
Dim Cursor As Object
Doc = StarDesktop.CurrentComponent
Cursor = Doc.Text.createTextCursor()

Version 8.0 dt.S.168
Der Code zum zweiten Beispiel ist komplett falsch. Er beschreibt das Einfügen von Tabellenblättern in ein Calc-Dokument.
Man kann in Draw Seiten nicht über einen Namen einfügen. Nur mit insertNewByIndex().


Version 8.0 dt.S.243
Model.EchoChar (String) - echo character for password fields
In der IDE können Buchstaben eingeben werden. In Starbasic muss der Charwert des Zeichen übergeben werden. Zum Beispiel 42 für das Sternchen.
Die Eigenschaft ist entgegen der Dokumentation eine Integer-Variable und keine String- Variable.

Version 8.0 dt.S.245
Model.SelectedItems (Array of Strings) - list of highlighted entries
Die Funktion gibt die Position in der Liste zurück nicht den Inhalt des Eintrags
Was die Funktion jetzt macht? Keine Ahnung.


Version 8.0 dt.S.250
In dem Beispiel-Makro muß die Zeile:
DocCrl = Doc.getCurrentControler()
DocCrl = Doc.getCurrentController() lauten.