Erste Gehversuche mit Basic scheitern... :-)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

JeanCantos
*
Beiträge: 14
Registriert: Mo, 12.03.2007 21:27

Erste Gehversuche mit Basic scheitern... :-)

Beitrag von JeanCantos »

Hallo zusammen,

bin von MS Office auf OpenOffice umgestiegen und begeistert, wie einfach doch bestimmte Dinge hier gelöst wurden. Dass ich beispielsweise Tabellen über ihren Namen ansprechen kann, ist für mich eine Selbstverständlichkeit, die offenkundig die MS-Programmierer nicht mit mit teilen. :-)

Da ich bisher in VBA programmiert habe, möchte ich mich nun in OO-Basic einarbeiten. Dazu habe ich mir das Handbuch heruntergeladen und probiert, folgenden Code umzusetzen:

Code: Alles auswählen

Sub Main

Dim Doc As Object
Dim Table As Object
Dim Cursor As Object

Doc = StarDesktop.CurrentComponent
Cursor = Doc.Text.createTextCursor()
Table = Doc.createInstance("com.sun.star.text.TextTables")
Table.initialize(5, 4)
Doc.Text.insertTextContent(Cursor, Table, False)

End Sub
Aber irgendwie kommt ab der Zeile

Code: Alles auswählen

Cursor = Doc.Text.createTextCursor()
der Basic-Laufzeitfehler, dass Methode oder Eigenschaft nicht bekannt sein.

Ähmmm...was genau ist denn hier falsch, der Code wurde von mir 1:1 aus dem StarOffice 7 Handbuch kopiert.

Gruß,

Jean
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Beitrag von kannenklaus »

hallo jean,
Doc = StarDesktop.CurrentComponent
verwende anstatt StarDesktop.....

Code: Alles auswählen

Doc=thisComponent
dann klappt es auch von der basic-ide aus.

grüße
klaus
JeanCantos
*
Beiträge: 14
Registriert: Mo, 12.03.2007 21:27

THX

Beitrag von JeanCantos »

Hallo kannanenklaus,

vielen Dank für deinen Hinweis. Der Code akzeptiert zwar jetzt die eben angesprochene Zeile, bricht aber bei dem dann kommenden Code

Code: Alles auswählen

Table = Doc.createInstance("com.sun.star.text.TextTables")
mit der Fehlermeldung

"BASIC Laufzeitfehler
Es ist eine Exception aufgetreten
Type: com.sun.star.lang.ServiceNotRegisteredExceptionMessage"

Gibt es hier auch die Möglichkeit, sich die Methodenbeschreibung anzeigen zu lassen, sobald eine Methode markiert wird und beispielsweise F1 gedrückt wird (wie es in Office ist)?

Wenn nicht: Wo kann ich mir denn die ganzen Methoden und Eigenschaften nachlesen, die ich unter z.B. Writer benutzen kann?

Gruß,

Jean

[/img]
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Beitrag von kannenklaus »

hallo jean

der fehler liegt bei TextTables. so ist es richtig

Code: Alles auswählen

Table = Doc.createInstance("com.sun.star.text.TextTable")
beachte auch, dass die methode createInstance casesensitiv ist. einen (meiner meinung nach der beste) object-explorer ist das xray tool 5.2. zu finden:

http://sourceforge.net/project/showfile ... _id=101416

dann brauchst du noch das api bzw. das sdkzu finden:

http://api.openoffice.org/

http://api.openoffice.org/DevelopersGui ... Guide.html

http://www.starbasicfaq.de/index.html

beachte generell, dass das handbuch von sun mit den basic-code-beispielen oft fehlerhaft ist.

grüße
klaus

grüße
klaus
JeanCantos
*
Beiträge: 14
Registriert: Mo, 12.03.2007 21:27

THX

Beitrag von JeanCantos »

Hallo Klaus,

vielen Dank für die hilfreichen Links. Werde mich jetzt ein bissel in die Weiten der OO-Programmierungsdokumentation begeben.

Gruß,

Jean
Antworten