[gelöst ]Dialog wird nicht erkannt

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst ]Dialog wird nicht erkannt

Re: [gelöst ]Dialog wird nicht erkannt

von keksi1970 » Fr, 01.08.2008 14:35

juhu, ich darf verbessern :D

lt. Handbuch besitzen Dim und Public im Bereich der Kopfzeile dieselbe Funktion zur Gültigkeitsdauer von Variablen.
Sie stehen allen Modulen in ihrer Bibliothek zur Verfügung und behalten Ihre Gültigkeit, solange das Makro ausgefuehrt wird

GLobale Variablen behalten jedoch ihren Wert auch nach beendigung des Makros

quelle : http://docs.sun.com/app/docs/doc/819-1326/faanp?a=view

lg Andreas

Re: [gelöst ]Dialog wird nicht erkannt

von komma4 » Do, 31.07.2008 11:20

OK, gerade selbst gefunden, als ich die entsprechende Frage tippte...

Anmerkung: mit DIM ist sie für das Modul deklariert.
GLOBAL oder PUBLIC deklarieren sie OOo-weit.

Re: Dialog wird nicht erkannt

von sg1985 » Do, 31.07.2008 11:14

bin gerade selber auf den Fehler drauf gekommen.

Lösung: die Variable oDialogControl gehört "global" angelegt, also vor allen Sub Funktionen, damit sie überall erkannt wird.

also einfach die Codezeile:

Code: Alles auswählen

Dim oDialogControl as Object

ganz zu Beginn vom Makro einfügen

[gelöst ]Dialog wird nicht erkannt

von sg1985 » Do, 31.07.2008 11:02

Hallo,

ich erzeuge in meinem Makro einen Dialog, der einen Button mit dem Namen "Button1" hat. Wenn ich auf diesen klicke, möchte ich eine andere Sub Funktion aufrufen, die den Dialog zum Beispiel schließt.
Kurz gesagt, es ist mir wichtig, dass der Dialog in der anderen Sub Funktion erkannt wird, um ihn eben ansprechen zu können (zum Beispiel zum schließen oder um auf seine Controlelemente zugreifen zu können), aber genau das funktioniert nicht.

Nun habe ich folgenden Code:

Code: Alles auswählen

[....]
oDialogModel = createUnoService( "com.sun.star.awt.UnoControlDialogModel" )
oDialogModel.Title = "Projekt-Auswahl"
oDialogModel.Name = "Dialog_Projekt"
oDialogModel.BackgroundColor = RGB(230,230,230)'&HCCCCFF
oDialogControl = createUnoService( "com.sun.star.awt.UnoControlDialog" )
oDialogControl.setModel( oDialogModel )
oDialogControl.setPosSize( 120, 130, 400, 300, com.sun.star.awt.PosSize.POSSIZE)

oModel = oDialogModel.createInstance( "com.sun.star.awt.UnoControlButtonModel" )
oModel.BackgroundColor = &HCCCCFF
'oModel.PushButtonType = com.sun.star.awt.PushButtonType.OK
oModel.FontWeight = com.sun.star.awt.FontWeight.BOLD
oDialogModel.insertByName("Button1", oModel )
oModel.Name = "Button1"
oControl = oDialogControl.getControl("Button1")
oModel.Label = "Abfrage ausführen"
oControl.setPosSize(150,200, 200, 30, com.sun.star.awt.PosSize.POSSIZE)

[...]

oListenerClone = CreateUnoListener("btn_", "com.sun.star.awt.XActionListener")
oControl = oDialogControl.getControl("Button1")
oControl.addActionListener(oListenerClone)

oDialogControl.setVisible( True )
oDialogControl.execute
oDialogControl.endExecute

[...]

sub btn_actionPerformed(oEvent)
   oDialogControl.endExecute
End Sub
Ich habe es genauso gemacht, wie in diesem Topic beschrieben: viewtopic.php?f=18&t=12776#p51295

Jedoch bekomme ich in der Zeile " oDialogControl.endExecute" in der Sub Prozedur "sub btn_actionPerformed(oEvent)" immer die Fehlermeldung, dass die Objektvariable nicht erkannt wird (laut obigem Link, sollte dies aber gehen)...
Der Listener an sich funktioniert... wenn ich mir in der Sub Funktion "sub btn_actionPerformed(oEvent)" eine Nachricht in einer msgbox ausgeben lasse, funktioniert das einwandfrei.

Kann mir jemand sagen, was ich falsche mache?

Nach oben