Dazu musst Du wissen was ein Softwareobjekt ist. z.B. ist ein Writer-Dokument ein Softwareobjekt, aber auch ein Textrahmen im Writer-Dokument ist ein Softwareobjekt. Ein Ereignis (z.B. "BeimÖffnen") ist ebenfalls ein Softwareobjekt. Grob gesprochen ist ein Sofwareobjekt eigentlich ein Softwareprogramm(teil).
Softwareobjekte wiederum haben Eigenschaften und Methoden. Eigenschaften und Methoden erreicht man in Starbasic über einen Punkt zwischen dem Objekt und seiner Eigenschaft/Methode. Wenn das Wirter-Dokument also ThisDocument ist, dann kann man es mit der Methode .print ausdrucken. Im Makro genügt im Wesentlichen:
Die Eigenschaft .DrawPage erreicht man über
Eine Methode macht etwas, eine Eigenschaft ist etwas. Wenn Du wissen willst wie der Titel des derzeitigen Dokumentes ist, dann schreibst Du ins Makro:
und erhältst:

- Unbenannt.png (6.95 KiB) 3523 mal betrachtet
Einige Eigenschaften eines Objektes können wiederum andere Objekte sein. Dadurch entsteht eine hierarchische Struktur. z.B. hat ein Writer-Dokument unter anderem folgende Eigenschaften:
Code: Alles auswählen
...
CurrentController
CurrentSelection
...
DialogLibraries
...
DocumentProperties
…
DrawPage
EmbeddedObjects
Endnotes
...
Events
...
GraphicObjects
...
Parent
...
TextTables
...
Die Eigenschaft .Parent ist besonders wichtig, sie führt Dich zum übergeordneten Objekt.
Wie man sich in diesen Objektstrukturen herumhangelt findet man am besten selbst raus

Dabei kann man sich u.U. auch im Kreis bewegen:
Ein Formular das sich in einem Writer-Dokument befindet kannst Du so finden:
Code: Alles auswählen
Formularobjekt = ThisComponent.DrawPage.Forms.getByName("MeinFormularname")
Da das Formular der Drawpage und in weiterer Folge dem Writer-Dokument untergeordnet ist, kann man das Writer-Dokument durch 2maligen Aufruf der Eigenschaft .Parent erreichen
Im Wesentlichen schafft man den Einstieg in die Objekthierarchie über das Event-Objekt oder über Standardobjekte wie z.B. ThisComponent die "immer und überall" zur Verfügung stehen.
Wenn man das Makro "Last(oEvent AS OBJECT)" an ein Ereignis (=Event) bindet, dann steht im Makro oEvent als Objekt zur Verfügung.
Das Ereignis "Mausbewegung" hat offensichtlich die Eigenschaften .Source.Model.Parent. ThisComponent.drawpage hat aber keine ".Source" Eigenschaft - daher der Fehler.