❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Dialog benden und Funktion ausführen
Dialog benden und Funktion ausführen
Hallo liebe Calc-Gemeinde,
ich habe Peobleme mit dialogen in Calc....
Ich kann einen selbst erstellten Dialog wie unten starten:
DialogLibraries.LoadLibrary("Standard")
objNavigatorDialog = CreateUnoDialog(DialogLibraries.Standard.Navigator)
objNavigatorDialog.Execute
beeneden kann ich diesen aber nur mit dem [X] oben in der rechten Ecke und sonst sind keine aktionen möglich.
Ich habe auf dem selbst erstellten Dialog Schaltflächen die Unterprogramme "functions" aufrufen.
Mit "ObjectVariable.Endexecute wollte ich den Dialog wieder beenden... -> erfolglos.
Nun mein Problem:
Nach dem ich den Dialog aufgerufen habe möchte ich eine "function" ausführen. Wie mache ich das?
Beispiel:
Dialog aufrufen:
DialogLibraries.LoadLibrary("Standard")
objNavigatorDialog = CreateUnoDialog(DialogLibraries.Standard.Navigator)
Unterprogramm:
funcShowMassage -> (MsgBox("Hallo"))
objNavigatorDialog.Execute
Wie führe ich aus dem Dialog die Funktion aus?
Und wie beende ich durch einen selbst erstellten Button den Dialog?
Vielen Dank für eure Hilfe und besten Dank im Voraus!
Gruß Rango1278
ich habe Peobleme mit dialogen in Calc....
Ich kann einen selbst erstellten Dialog wie unten starten:
DialogLibraries.LoadLibrary("Standard")
objNavigatorDialog = CreateUnoDialog(DialogLibraries.Standard.Navigator)
objNavigatorDialog.Execute
beeneden kann ich diesen aber nur mit dem [X] oben in der rechten Ecke und sonst sind keine aktionen möglich.
Ich habe auf dem selbst erstellten Dialog Schaltflächen die Unterprogramme "functions" aufrufen.
Mit "ObjectVariable.Endexecute wollte ich den Dialog wieder beenden... -> erfolglos.
Nun mein Problem:
Nach dem ich den Dialog aufgerufen habe möchte ich eine "function" ausführen. Wie mache ich das?
Beispiel:
Dialog aufrufen:
DialogLibraries.LoadLibrary("Standard")
objNavigatorDialog = CreateUnoDialog(DialogLibraries.Standard.Navigator)
Unterprogramm:
funcShowMassage -> (MsgBox("Hallo"))
objNavigatorDialog.Execute
Wie führe ich aus dem Dialog die Funktion aus?
Und wie beende ich durch einen selbst erstellten Button den Dialog?
Vielen Dank für eure Hilfe und besten Dank im Voraus!
Gruß Rango1278
Re: Dialog benden und Funktion ausführen
Zum Aufruf des Dialogs muss execute verwendet werden.
Den Namen Deines Dialog-Objektes ausserhalb des subs mit dim deklarieren, damit Du aus anderen Subs darauf zugreifen kannst.
Zum Beenden mit Button gibt's 2 Möglichkeiten:
Button, dessen Button-Type "Cancel" ist, oder
Button, dessen Button-Type "Default" ist. Damit kannst Du auch Deine Funktionen ausführen.
Z.B mit endexecute in einem sub zum Beenden des Dialogs.
Den Namen Deines Dialog-Objektes ausserhalb des subs mit dim deklarieren, damit Du aus anderen Subs darauf zugreifen kannst.
Zum Beenden mit Button gibt's 2 Möglichkeiten:
Button, dessen Button-Type "Cancel" ist, oder
Button, dessen Button-Type "Default" ist. Damit kannst Du auch Deine Funktionen ausführen.
Z.B mit endexecute in einem sub zum Beenden des Dialogs.
Code: Alles auswählen
dim objNavigatorDialog
sub StartNavigatorDialog
DialogLibraries.loadLibrary("Standard")
objNavigatorDialog = CreateUnoDialog(DialogLibraries.Standard.Navigator)
objNavigatorDialog.getModel().getByName("TextBox").text = "1"
objNavigatorDialog.getModel().getByName("TextBox").label = "2"
objNavigatorDialog.execute()
End Sub
rem-----Button mit Typ "Default": Event ausführen: Makro
Sub changeNavigatorDialog
objNavigatorDialog .getModel().getByName("TextBox").text = "new text"
objNavigatorDialog .getModel().getByName("TextBox").label = "new Label"
end sub
rem-----Button mit Typ "Default": Event ausführen: Makro
sub EndNavigatorDialog
objNavigatorDialog .endExecute()
end sub
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html
Re: Dialog benden und Funktion ausführen
T'schuldigung, es gibt mindestens noch die meistverwendete Möglichkeit mit einem OK-Button
Vorteil: man kann durch den Rückgabewert des Dialogs ermitteln, ob der Dialog mit dem OK-Button als i.O. beendet wurde, oder durch das X bzw. Abbrechen abgebrochen werden soll, siehe Beispiel anbei.
Da braucht man dann kein zusätzliches Makro sondern macht nach der Abfrage des Rückabewertes eben weiter oder bricht ab.
Gruß R
Code: Alles auswählen
Sub S_Dialog
DialogLibraries.LoadLibrary("Standard")
oDialog1 = createunoDialog(DialogLibraries.Standard.Dialog1)
oTextField1 = oDialog1.getControl("TextField1")
bDialog = oDialog1.execute
msgbox "der Dialog gibt """ & bDialog & """ zurück"
if bDialog Then
sText = oTextField1.Text
msgbox("Du hast """ & sText & """ eingegeben und den OK-Button gedrückt")
else
sText = oTextField1.Text
msgbox("Du hast """ & sText & """ eingegeben und den Dialog über das Kreuz oder den Abbrechen-Button abgebrochen")
exit sub'Abbruch
endif
'Weiter
Print "hier geht es nach dem OK-Button weiter ..."
End Sub
Da braucht man dann kein zusätzliches Makro sondern macht nach der Abfrage des Rückabewertes eben weiter oder bricht ab.
Gruß R
- Dateianhänge
-
- Dialog_mit_OK_Button.odt
- (27.14 KiB) 270-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Dialog benden und Funktion ausführen
Oh, danke! Das wusste ich noch nicht. Jetzt ergibt der button-type OK auch plötzlich Sinn.
Das ist für einfache dialoge natürlich ein viel eleganterer weg!

Das ist für einfache dialoge natürlich ein viel eleganterer weg!
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html
Re: Dialog benden und Funktion ausführen
Hallo,
vielen Dank für eure Beiträge.... Ich werde in den nächsten Tagen daran arbeiten und Bescheid geben...
Gruß Rango1278
vielen Dank für eure Beiträge.... Ich werde in den nächsten Tagen daran arbeiten und Bescheid geben...
Gruß Rango1278
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.