Aber ..... woher hast du die herzerfrischend einfachen Befehle?
Im Konkreten ThisComponent:
ThisComponent und StarDesktop.CurrentComponent sind im Deverlopersguide beschrieben. Beide können Gleiches bewirken oder sehr Unterschiedliches je nachdem in welchem Kontext Du sie benutzt.
Um die Sprache wirklich zu verstehen mußt Du Dich mit dem Developersguide auseinander setzen. Das ist zunächst abstoßend, weil kompliziert, so das der pragmatische Weg ist immer wieder Code zu lesen und zu analysieren. Sehr viel Code findest Du im englischen Forum.
Eine Grundfertigkeit beim Einarbeiten ist der Gebrauch von:
<Objekt>.dbg_properties
<Objekt>.dbg_methods
<Objekt>.dbg_supportedInterfaces
(Zur Vereinfachung dazu gibt es auch fertige "Analyse"makros)
Um ein Beispiel für getBookmarks zu nennen:
Code: Alles auswählen
Sub Main
DIM Doc As Object
Doc = Stardesktop.CurrentComponent
MsgBox Doc.dbg_methods
End Sub
Das liefert folgende Ausgabe:
Methods of object "SwXTextDocument":
SbxEMPTY queryInterface ( SbxOBJECT ) ; SbxOBJECT getViewData ( void ) ; SbxVOID setViewData ( SbxOBJECT ) ; SbxEMPTY getTransferData ( SbxOBJECT ) ;
SbxARRAY getTransferDataFlavors ( void ) ; SbxBOOL isDataFlavorSupported ( SbxOBJECT ) ; SbxVOID addPrintJobListener ( SbxOBJECT ) ; SbxVOID removePrintJobListener ( SbxOBJECT ) ;
SbxOBJECT getEvents ( void ) ; SbxVOID addCloseListener ( SbxOBJECT ) ; SbxVOID removeCloseListener ( SbxOBJECT ) ; SbxARRAY getTypes ( void ) ;
SbxARRAY getImplementationId ( void ) ; SbxOBJECT getParent ( void ) ; SbxVOID setParent ( SbxOBJECT ) ; SbxOBJECT getDocumentInfo ( void ) ;
SbxVOID disposing ( SbxOBJECT ) ; SbxVOID dispose ( void ) ; SbxVOID addEventListener ( SbxOBJECT ) ; SbxVOID removeEventListener ( SbxOBJECT ) ;
SbxBOOL attachResource ( SbxSTRING, SbxARRAY ) ; SbxSTRING getURL ( void ) ; SbxARRAY getArgs ( void ) ; SbxVOID connectController ( SbxOBJECT ) ;
SbxVOID disconnectController ( SbxOBJECT ) ; SbxVOID lockControllers ( void ) ; SbxVOID unlockControllers ( void ) ; SbxBOOL hasControllersLocked ( void ) ;
SbxOBJECT getCurrentController ( void ) ; SbxVOID setCurrentController ( SbxOBJECT ) ; SbxOBJECT getCurrentSelection ( void ) ; SbxVOID addModifyListener ( SbxOBJECT ) ;
SbxVOID removeModifyListener ( SbxOBJECT ) ; SbxBOOL isModified ( void ) ; SbxVOID setModified ( SbxBOOL ) ; SbxARRAY getPrinter ( void ) ;
SbxVOID setPrinter ( SbxARRAY ) ; SbxVOID print ( SbxARRAY ) ; SbxBOOL hasLocation ( void ) ; SbxSTRING getLocation ( void ) ;
SbxBOOL isReadonly ( void ) ; SbxVOID store ( void ) ; SbxVOID storeAsURL ( SbxSTRING, SbxARRAY ) ; SbxVOID storeToURL ( SbxSTRING, SbxARRAY ) ;
SbxVOID initNew ( void ) ; SbxVOID load ( SbxARRAY ) ; SbxVOID close ( SbxBOOL ) ; SbxOBJECT getLibraryContainer ( void ) ;
SbxVOID createLibrary ( SbxSTRING, SbxSTRING, SbxSTRING, SbxSTRING ) ; SbxVOID addModule ( SbxSTRING, SbxSTRING, SbxSTRING, SbxSTRING ) ; SbxVOID addDialog ( SbxSTRING, SbxSTRING, SbxARRAY ) ; SbxVOID addEventListener ( SbxOBJECT ) ;
SbxVOID removeEventListener ( SbxOBJECT ) ; SbxOBJECT getText ( void ) ; SbxVOID reformat ( void ) ; SbxOBJECT getLineNumberingProperties ( void ) ;
SbxOBJECT getChapterNumberingRules ( void ) ; SbxOBJECT getFootnotes ( void ) ; SbxOBJECT getFootnoteSettings ( void ) ; SbxOBJECT getEndnotes ( void ) ;
SbxOBJECT getEndnoteSettings ( void ) ; SbxOBJECT createSearchDescriptor ( void ) ; SbxOBJECT findAll ( SbxOBJECT ) ; SbxOBJECT findFirst ( SbxOBJECT ) ;
SbxOBJECT findNext ( SbxOBJECT, SbxOBJECT ) ; SbxOBJECT createReplaceDescriptor ( void ) ; SbxLONG replaceAll ( SbxOBJECT ) ; SbxARRAY getPagePrintSettings ( void ) ;
SbxVOID setPagePrintSettings ( SbxARRAY ) ; SbxVOID printPages ( SbxARRAY ) ; SbxOBJECT getReferenceMarks ( void ) ; SbxOBJECT getTextTables ( void ) ;
SbxOBJECT getTextFrames ( void ) ;
SbxOBJECT getBookmarks ( void ) ; SbxOBJECT getTextSections ( void ) ; SbxOBJECT getGraphicObjects ( void ) ;
SbxOBJECT getEmbeddedObjects ( void ) ; SbxOBJECT getTextFields ( void ) ; SbxOBJECT getTextFieldMasters ( void ) ; SbxOBJECT getStyleFamilies ( void ) ;
SbxSTRING getImplementationName ( void ) ; SbxBOOL supportsService ( SbxSTRING ) ; SbxARRAY getSupportedServiceNames ( void ) ; SbxOBJECT getDrawPage ( void ) ;
SbxOBJECT getDocumentIndexes ( void ) ; SbxOBJECT getPropertySetInfo ( void ) ; SbxVOID setPropertyValue ( SbxSTRING, SbxVARIANT ) ; SbxEMPTY getPropertyValue ( SbxSTRING ) ;
SbxVOID addPropertyChangeListener ( SbxSTRING, SbxOBJECT ) ; SbxVOID removePropertyChangeListener ( SbxSTRING, SbxOBJECT ) ; SbxVOID addVetoableChangeListener ( SbxSTRING, SbxOBJECT ) ; SbxVOID removeVetoableChangeListener ( SbxSTRING, SbxOBJECT ) ;
SbxLONG getPropertyState ( SbxSTRING ) ; SbxARRAY getPropertyStates ( SbxARRAY ) ; SbxVOID setPropertyToDefault ( SbxSTRING ) ; SbxEMPTY getPropertyDefault ( SbxSTRING ) ;
SbxOBJECT getLinks ( void ) ; SbxOBJECT getRedlines ( void ) ; SbxVOID refresh ( void ) ; SbxVOID addRefreshListener ( SbxOBJECT ) ;
SbxVOID removeRefreshListener ( SbxOBJECT ) ; SbxVOID updateLinks ( void ) ; Unknown Sbx-Type! getSomething ( SbxARRAY ) ; SbxLONG getRendererCount ( SbxVARIANT, SbxARRAY ) ;
SbxARRAY getRenderer ( SbxLONG, SbxVARIANT, SbxARRAY ) ; SbxVOID render ( SbxLONG, SbxVARIANT, SbxARRAY ) ; SbxOBJECT queryAdapter ( void ) ; SbxOBJECT getNumberFormatSettings ( void ) ;
SbxOBJECT getNumberFormats ( void ) ; SbxVOID setDelegator ( SbxOBJECT ) ; SbxEMPTY queryAggregation ( SbxOBJECT ) ; SbxOBJECT createInstance ( SbxSTRING ) ;
SbxOBJECT createInstanceWithArguments ( SbxSTRING, SbxARRAY ) ; SbxARRAY getAvailableServiceNames ( void )
und da findest Du diese Methode.
Wenn Du so Objekte immer wieder analysierst, wird Dir das Ganze vertraut weil Du ja nach und nach zu einer Codeschnipselsammlung kommst und nicht alles immer neu ermitteln mußt.
Gruß
Stephan