Seite 1 von 1

[gelöst] Basic IDE öffnet sich ungewollt

Verfasst: Mi, 21.12.2011 15:00
von schnumbl
Hallo zusammen,

folgendes Sub öffnet den Dialog-Editor nachdem ich den ausgeführten Dialog "Standard.Dialog1" schließe:

Code: Alles auswählen

Sub Template_Gallery_Show()
	
		oGDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	
	        oButtonCtrl = CreateUnoService( "com.sun.star.awt.UnoControlImageControl" )
	        oButtonModel = CreateUnoService( "com.sun.star.awt.UnoControlImageControlModel" )	          
	        oGraphicProvider = createUnoService("com.sun.star.graphic.GraphicProvider")
	     
			oButtonCtrl.setModel( oButtonModel ) 
	        	         
			 oListener1 = CreateUnoListener("buttons_", "com.sun.star.awt.XMouseListener")			 
			oButtonCtrl.addMouseListener(oListener1)
	        
	        oGDlg.insert(oButtonCtrl)	      	            
	    
	    oGDlg.execute()

End Sub   

sub buttons_mousePressed(oEvent)
 msgbox "ok"
End Sub

sub buttons_mouseReleased(oEvent) 
End Sub

sub buttons_mouseEntered(oEvent)
End Sub

sub buttons_mouseExited(oEvent)
End Sub

Wie kann ich das Anzeigen der Basic IDE verhindern? (Wenn ich den Listener entferne tritt das Problem nicht auf.)
Ist das ein Bug im MouseListener?

Grüße,

Stefan

Re: Basic IDE öffnet sich ungewollt

Verfasst: Do, 22.12.2011 18:00
von schnumbl
Habe das Problem "gelöst" indem ich beim Aufruf eines Listeners alle Listener entferne bevor der Dialog geschlossen wird:

Code: Alles auswählen

Dim oGDlg As Object
Dim oButtonCtrl(100) as object
Dim oListener(100) as object
Dim image_num as Integer
Dim ypos(100) As Long
Dim ysize As Long

Sub Template_Gallery_Show()

'...
            image_num = 50
	    For k = 0 To image_num - 1
	'...
	 
	        oButtonCtrl(k) = CreateUnoService( "com.sun.star.awt.UnoControlImageControl" )
	        oButtonModel = CreateUnoService( "com.sun.star.awt.UnoControlImageControlModel" )	          
	   	oButtonCtrl(k).setModel( oButtonModel ) 
				
		 	         
		oListener(k) = CreateUnoListener("VeuszAddIn.Template_Gallery.buttons_", "com.sun.star.awt.XMouseListener")			 
		oButtonCtrl(k).addMouseListener(oListener(k))
	        
	        oGDlg.insert(oButtonCtrl(k))

	      '...  
	
	    oGDlg.execute()
   End If   
End Sub   

sub buttons_mousePressed(oEvent)

'...

 'remove all listeners
 for k = 0 to image_num-1
  oButtonCtrl(k).removeMouseListener(oListener(k))
 next k

 'close dialog
 oGDlg.endExecute()  
End Sub

sub buttons_mouseReleased(oEvent) 
End Sub

sub buttons_mouseEntered(oEvent)
End Sub

sub buttons_mouseExited(oEvent)
End Sub