[Gelöst] Auf geöffneten Dialog prüfen
Moderator: Moderatoren
[Gelöst] Auf geöffneten Dialog prüfen
Hallo zusammen,
ich brauche Hilfe, um auf einen bereits geöffneten Dialog zu prüfen. ( Hinweise, Vorschläge, Lösungen sind willkommen ). Ich weiß z.Zt. nicht, wo ich danach suchen soll.
Folgendes Szenario :
eine Datei öffnet einen Dialog zur Kommunikation mit einer MySQL-DB.
Jetzt kommt dem Anwender aber was dazwischen und dieser öffnet eine andere Datei, die wiederum einen Dialog öffnet, ebenso Verbindung zur MySQL-DB.
Folglich stürzt Basic mit einem Laufzeitfehler ab.
Jetzt würde ich gerne prüfen, ob in irgendeiner OOO-Instanz schon ein Dialog geöffnet ist, so dass kein weiterer geöffnet werden kann.
mfg
Andreas
ich brauche Hilfe, um auf einen bereits geöffneten Dialog zu prüfen. ( Hinweise, Vorschläge, Lösungen sind willkommen ). Ich weiß z.Zt. nicht, wo ich danach suchen soll.
Folgendes Szenario :
eine Datei öffnet einen Dialog zur Kommunikation mit einer MySQL-DB.
Jetzt kommt dem Anwender aber was dazwischen und dieser öffnet eine andere Datei, die wiederum einen Dialog öffnet, ebenso Verbindung zur MySQL-DB.
Folglich stürzt Basic mit einem Laufzeitfehler ab.
Jetzt würde ich gerne prüfen, ob in irgendeiner OOO-Instanz schon ein Dialog geöffnet ist, so dass kein weiterer geöffnet werden kann.
mfg
Andreas
Zuletzt geändert von keksi1970 am Di, 26.04.2011 08:33, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Auf geöffneten Dialog prüfen
Warum?keksi1970 hat geschrieben:Folglich stürzt Basic mit einem Laufzeitfehler ab.
Fehlermeldung?
Ansonsten: setze eine globale Variable, wenn ein Dialog geöffnet ist und frage diese vor weiteren Versuchen ab.
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)
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)
Re: Auf geöffneten Dialog prüfen
Die einzige Meldung : BASIC-Laufzeitfehler, Objektvariable nicht belegt.
Die Variablen sind jedoch einwandfrei deklariert und haben auch unterschiedliche Namen. Die Reihenfolge des Startens spielt keine Rolle. Sobald das hinterlegte Makro auf den Dialog oder ein Objekt im Dialog zugreift, bricht Basic mit dieser Fehlermeldung ab.
Daher suche ich nun eine Möglichkeit, auf einen bereits geöffneten Dialog zu prüfen.
Die Variablen sind jedoch einwandfrei deklariert und haben auch unterschiedliche Namen. Die Reihenfolge des Startens spielt keine Rolle. Sobald das hinterlegte Makro auf den Dialog oder ein Objekt im Dialog zugreift, bricht Basic mit dieser Fehlermeldung ab.
Daher suche ich nun eine Möglichkeit, auf einen bereits geöffneten Dialog zu prüfen.
Re: Auf geöffneten Dialog prüfen
Hallo
Die Fehlermeldung deutet eher darauf hin das eine Variable noch nicht deklariert/intitialisiert wurde, evtl. der Dialog selbst ?
Hier mal ein Minimalbeispiel wie du jederzeit "myDlg.execute()" ausführen kannst, und nur im Fehlerfall vorher deklarierst.
Gruß Karo
Die Fehlermeldung deutet eher darauf hin das eine Variable noch nicht deklariert/intitialisiert wurde, evtl. der Dialog selbst ?
Hier mal ein Minimalbeispiel wie du jederzeit "myDlg.execute()" ausführen kannst, und nur im Fehlerfall vorher deklarierst.
Code: Alles auswählen
Global MyDlg as Object 'oder public ... ?
Sub create
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
End Sub
sub ausfuehren
onError: create
myDlg.execute()
end sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Auf geöffneten Dialog prüfen
Das bedeutet, dass bei der Belegung des Objektes ein Fehler aufgetreten ist und Du deswegen nicht auf das Objekt zugreifen kannst.keksi1970 hat geschrieben:Die einzige Meldung : BASIC-Laufzeitfehler, Objektvariable nicht belegt.
Zeige uns dochmal den 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)
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)
Re: Auf geöffneten Dialog prüfen
1. Dateikomma4 hat geschrieben:Das bedeutet, dass bei der Belegung des Objektes ein Fehler aufgetreten ist und Du deswegen nicht auf das Objekt zugreifen kannst.keksi1970 hat geschrieben:Die einzige Meldung : BASIC-Laufzeitfehler, Objektvariable nicht belegt.
Zeige uns dochmal den Code
Code: Alles auswählen
Dialoglibraries.Loadlibrary("Standard")
EingabeDlg = CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
Code: Alles auswählen
Dialoglibraries.Loadlibrary("Standard")
oPerfDlg = CreateUnoDialog(Dialoglibraries.Standard.PerfDialog)
Code: Alles auswählen
oPerfDlg.getControl("User").text = UserName
Code: Alles auswählen
Dialoglibraries.Loadlibrary("Standard")
SokoDlg = CreateUnoDialog(Dialoglibraries.Standard.SoKoDlg)
Code: Alles auswählen
SpediCtr = SoKoDlg.getControl("SpediteurList")
Re: Auf geöffneten Dialog prüfen
Aloha
Das ist ein schon seit über einem Jahr bekanntes Problem, siehe auch Bug 109032 - CreateUnoDialog returns Null when Dialog/s running from other odb file at the same time.
Das einfachste ist die Abfrage mit isNull nach Erzeugen des Dialogs.
Die zweite, sehr viel umständlichere Variante wäre das Verwenden einer, bzw mehrerer globaler Variablen.
Das ist ein schon seit über einem Jahr bekanntes Problem, siehe auch Bug 109032 - CreateUnoDialog returns Null when Dialog/s running from other odb file at the same time.
Das einfachste ist die Abfrage mit isNull nach Erzeugen des Dialogs.
Code: Alles auswählen
oPerfDlg = CreateUnoDialog(Dialoglibraries.Standard.PerfDialog)
If isNull(oPerfDlg) Then
MsgBox "Es läuft bereits ein anderer Dialog oder Dialog nicht gefunden"
Exit Sub
End If
oPerfDlg.getControl("User").text = UserName
Re: [Gelöst] Auf geöffneten Dialog prüfen
Hallo DPunch,
ich war doch froh keine globalen Variablen nutzen zu müssen
Deine Lösung funktioniert einwandfrei.
Vielen Dank
Andreas
ich war doch froh keine globalen Variablen nutzen zu müssen

Deine Lösung funktioniert einwandfrei.
Vielen Dank
Andreas