Makroaufruf durch Button im Dialog

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

Moderator: Moderatoren

sg1985
***
Beiträge: 89
Registriert: Mo, 07.07.2008 15:22

Makroaufruf durch Button im Dialog

Beitrag von sg1985 »

Ich habe unter "Meine Makros/Standard" 2 Module. Das Modul 1 ist ein Makro, das einen Dialog zeichnet und dessen Listbox mit einer SQL Abfrage befüllt. Der Dialog enthält einen OK-Button,
bei Klick dieses OK-Buttons würde ich gerne das Makro in Modul 2 Aufrufen, das den selektierten Wert der Listbox im Dialog ausliest.

Geht das?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroaufruf durch Button im Dialog

Beitrag von komma4 »

Ja, das geht.

Du musst einen event listener programmieren und den Kontrollelementen zuweisen.

Schau' mal hier: viewtopic.php?f=18&t=6413&p=24291
Oder in einem der 31 threads von DannyB (TheMan !) mit Suchbegriff "event listener" im http://www.oooforum.org


Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Makroaufruf durch Button im Dialog

Beitrag von ykcim »

Seit wann braucht man für einen Button einen EventListener?
Entweder der Butto ist einem Dialog und kann dann mit der Eigenschaft-Ereignisse -> beim Auslösen ein Makro zugewiesen bekommen oder
der Button ist auf dem Formular und dann kann er auch unter Eigenschaften..... zugewiesen bekommen. Das geht auch per Makro.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
sg1985
***
Beiträge: 89
Registriert: Mo, 07.07.2008 15:22

Re: Makroaufruf durch Button im Dialog

Beitrag von sg1985 »

Ja, der Button ist in einem Dialog. Der Dialog wird aber von einem Makro gezeichnet und daher erreich ich dort nicht den Menüpunkt Eigenschaften/Ereignisse.
Als ich den Dialog per Hand durch den Formeditor gezeichnet habe, bin ich dort hin gekommen zu diesem Menüpunkt, nun aber eben nicht.

Mir wäre es aber sowieso ganz Recht, wenn ich das alles im Makro programmieren könnte. Also der Button wird angeklickt --> ein anderes Makro (sub funktion) wird ausgeführt.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Makroaufruf durch Button im Dialog

Beitrag von turtle47 »

Schau Dir mal folgendes untere Beispiel an. Dort wird auch mit dem Listener gearbeitet.
Vielleicht hilfts ja weiter. :)

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
sg1985
***
Beiträge: 89
Registriert: Mo, 07.07.2008 15:22

Re: Makroaufruf durch Button im Dialog

Beitrag von sg1985 »

@ykcim

wie funktioniert das, das ich dem Button im Dialog per Makro die Eigenschaft zuweisen kann dass er ein anderes Makro (genauer gesagt eine andere Sub Funktion) aufruft?

liebe grüße
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Makroaufruf durch Button im Dialog

Beitrag von keksi1970 »

sorry fuer diesen alten Thread, aber genau das koennte ich auch gebrauchen :)

vlt. mag mir jemand Antwort geben ?

lg Andreas
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroaufruf durch Button im Dialog

Beitrag von komma4 »

siehe meine Antwort oben: dynamisch erstellte Dialoge benötigen die Zuweisung eines listeners mittels Code.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Makroaufruf durch Button im Dialog

Beitrag von keksi1970 »

also eine direkte Zuweisung der Eigenschaft/Ereignisse bei click geht nicht ?

trotzdem danke, dann wohl doch mit Listener
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makroaufruf durch Button im Dialog

Beitrag von komma4 »

Die Zuweisung, die Du mittels Basic-(Dialog-)Editor machst, *ist* eine listener-Programmierung, welche aber die runtime-engine auflöst.

In der entsprechenden dialog.xdl sieht das so aus (Ausschnitt):

Code: Alles auswählen

  <dlg:button dlg:id="CommandButton1" dlg:tab-index="2" dlg:left="8" dlg:top="101" dlg:width="36" dlg:height="12" dlg:default="true" dlg:value="OK" dlg:button-type="ok">
   <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:wr.x_wps.BTN_DokumentErzeugen?language=Basic&location=application" script:language="Script"/>
Erzeugst Du einen Dialog durch Code, dann musst Du den listener selbst programmieren.

Zu den Zeiten von OOo 2.2.x war es noch unbedingt nötig die listener auch wieder zu deakivieren - ansonsten kam es zu unvorhergesehenem Verhalten der gesamten Anwendung. Ob sich das in späteren Versionen geändert hat: k.A. - ich mache es sicherheitshalber immer noch.

Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Makroaufruf durch Button im Dialog

Beitrag von keksi1970 »

komma4 hat geschrieben:
Viel Erfolg!

Danke *knirsch :D

lg andreas
Antworten