Das ist ja quasi die Champions League der Makros
Dialoge über GUI zu zeichnen ist eigentlich allgemein das fortgeschrittenere Verfahren, Dialoge ohne GUI-Unterstützung nur mittels Code zu erzeugen das Ältere
Dieser checkt ob der Button betätigt wurde und kann dann gegebenenfalls auf andere Makros bzw. Prozeduren verweisen oder wie?
Der Zusammenhang wird über den 'Namensvorsatz' aus:
oListwork = createUnoListener("worklist_","com.sun.star.awt.XActionListener")
hergestellt, hier also "worklist_". Es ist ein Makro mit Namen <Namensvorsatz> plus anzusprechende Methode des Listeners zu erstellen, der Inhalt dieses Makros wird bei Auslösen des Listeners dann ausgeführt. Für einen XActionListener existiert nur eine Methode, nämlich actionPerformed:
http://api.openoffice.org/docs/common/r ... nPerformed
der Makroname muß also lauten Sub worklist_actionPerformed(oEvent) und genauso steht es auch in mottco.
Der Parameter oEvent wird von OOo automatisch übergeben und stellt den Bezug auf das konkret auslösende Objekt bzw. Event dar. Dieser Parameter kann bei Notwendigkeit ausgewertet werden, was hier nicht nötig ist, da das konkrete Objekt (nämlich die Schaltfläche) feststeht, im Falle das ein Listener jedoch z.B. für alle Zellen eines Tabellenblattes registriert wäre ließe sich mit oEvent die einzelne, konkret ereignisauslösende Zelle ermitteln.
Wo kann ich mehr über die Listener-dinger erfahren.
Alle Listener sind in der IDL-Referenz:
http://api.openoffice.org/docs/common/r ... le-ix.html
vermerkt.
Codebeispiele finden sich u.a. im internationalen Forum:
http://www.oooforum.org
Gruß
Stephan