[gelöst]Nach dem Schliessen des Dialoges öffnet sich das OO-

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

Moderator: Moderatoren

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

[gelöst]Nach dem Schliessen des Dialoges öffnet sich das OO-

Beitrag von HHTiger »

Hallo,

ich habe noch ein kleines Problem beim Beenden eines Dialoges (vermutlich ein Formfehler). Nach dem Beenden des Dialoges wird immer das OO-Basic Fenster geöffnet (es sei denn, es ist schon geladen).

Zur Verdeutlichung habe ich ein entsprechendes Beispiel angefügt. Wo liegt mein Fehler?

Gruss Klaus
Dateianhänge
Test.ott
(10.58 KiB) 79-mal heruntergeladen
Zuletzt geändert von HHTiger am Fr, 21.12.2012 15:13, insgesamt 1-mal geändert.
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate
HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Nach dem Schliessen des Dialoges öffnet sich das OO-Basi

Beitrag von HHTiger »

Veilleicht noch ein zusätzlicher Hinweis:

wenn ich nach dem Befehl

......execute()

auch noch folgende Befehl nutze

......dispose()

kommt es 3 mal zu der Fehlermeldung: BASIC-Laufzeitfehler. Eigenschaft oder Methode nicht gefunden: $(ARG1).

Gruß Klaus
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate
HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Nach dem Schliessen des Dialoges öffnet sich das OO-Basi

Beitrag von HHTiger »

Eines hatte ich noch vergessen zu erwähnen: Die Foren-Suche habe ich selbstverständlich ausgiebig genutzt und es gibt auch dutzende Treffer auf die Fehlermeldung, allerdings konnte ich aus keinem Beitrag einen Tipp entnehmen, der mir hätte helfen können. Ich vermute einmal, daß es irgendwie im Zusamenhang mit dem Event-Listener steht und das beide Probleme dieselbe Ursache haben.

Da dies meine ersten "Gehversuche" mit OO-Basic sind habe ich mir den Code aus allen möglichen Quellen zusammengesetzt. Leider konnte ich nirgends ein komplettes Beispiel mit einem funktionierenden Dialog mit 3 Buttons finden, das ich als Basis hätte nutzen können.

Ich muss nicht zwangsläufig diesen Code verwenden, es gibt ja bekanntlich viele Wege, die nach Rom führen. Vielleicht gibt es ja auch eine viel einfachere Variante ... bin für jeden Tipp dankbar.

Gruss Klaus
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Nach dem Schliessen des Dialoges öffnet sich das OO-Basi

Beitrag von balu »

Hallo Klaus,

ich weiß nicht warum Du mit einem "MouseClick...XActionListener" arbeiten willst. Da Du aber einen IDE-Dialog erstellt hast, kannst Du doch dort den einzelnen Elmenten, wie z.B. den CommandButtons, auf dem Reiter "Ereignisse" Makros zuordnen. Und genau das habe ich jetzt mal gemacht. Ferner habe ich alles aus deinem Makro rausgeschmissen was nach meiner Ansicht überflüssig ist.

Schau dir mal den Code und vor allem die Buttons etwas genauer an.



Gruß
balu
Dateianhänge
Test_Dlg.ott
(10.47 KiB) 80-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Nach dem Schliessen des Dialoges öffnet sich das OO-Basi

Beitrag von HHTiger »

Hallo balu,
ich weiß nicht warum Du mit einem "MouseClick...XActionListener" arbeiten willst.
das kann ich Dir auch nicht beantworten. Das was das einzige Beispiel, dass ich finden konnte, um die CommandButtons zum arbeiten zu bewegen. Jetzt weiß ich auch warum :lol:
Das bedeutet dann wohl, daß es in OO-Basic bereits einen Standard Event-handler gibt und man nicht explizit einen "ActionListener" definieren bzw verwenden muss.
Das kommt dabei raus, wenn man keine Ahnung hat :oops: Schande über mein Haupt ... :lol:

Ich habe den Dialog schnell mal auf einen 3. Button erweitert, der nur einfach eine Meldung ausgibt um zu prüfen, ob es für mich paßt und ob ich alles verstanden habe.
Zusätzlich habe ich "Option Explicit" vereinbart, um zu sehen ob auch alle Variablen richtig angelegt sind. Und ich habe "glb_oDlg.dispose()" hinzugefügt, um alle Recourcen des Dialoges wieder freizugeben. Das funzt jetzt alles OHNE Probleme .... keine Fehlermeldung mehr und auch kein Code-Fenster mehr.

Damit müßte der Code jetzt alles enthalten, was wichtig und nötig ist um als "sauber" zu gelten, richtig?

Code: Alles auswählen

Option Explicit
Dim glb_oDlg As Object

Sub Main
	DialogLibraries.loadLibrary("Standard")
	glb_oDlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog)
	glb_oDlg.execute()
	glb_oDlg.dispose()
End Sub


Sub MouseClick_actionPerformed(oEvent)	
	Select Case oEvent.Source.Model.Name
		Case = "cmdOK"
			MsgBox "OK-Button wurde betätigt!"
		Case = "cmdAbbruch"
			MsgBox "Abbruch-Button wurde betätigt!"
		Case = "cmdMessage"
			MsgBox "Meldungs-Button wurde betätigt!"
			Exit Sub
	End Select	 	
	glb_oDlg.endExecute	
End Sub
Tausend Dank für die schnelle Hilfe! Damit ist dieses Problem komplett gelöst :mrgreen:

btw: kann oder muss ich diesen Beitrag jetzt noch iregendwie als erledigt kennzeichen oder abschliessen? In den "Allgemeine Hinweise zur Forumsbenutzung" bin ich dazu nicht fündig geworden.
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate
Antworten