Philippe | 18 May 10:42

Attacher par code un gestionnaire d'événementà un bouton

Bonjour,

Je n'arrive pas à faire fonctionner le code suivant.
Pourriez vous m'aider?

Objectif: créer par code un bouton sur un formulaire et lui attacher un 
gestionnaire d'événement sur click.

Résultat: le formulaire est affiché avec le bouton.
Au click un message d'erreur: Propriété ou méthode introuvable

Merci d'avance

Philippe

Le code:

dim mdlg as object
' ======================================================
Sub Main
 ' obtenir une référence au formulaire Dialog1
 biblio=DialogLibraries.GetByName("Standard")
 oFrm=biblio.getByName("Dialog1")
 ' instancier le formulaire
 mdlg=createUNODialog(oFrm)
 ' ajouter un bouton et lui attacher un gestionnaire d'événement
 call AjoutBouton( mdlg ,"monBtn" ,3 , 3  ,1)
 ' afficher le formulaire
 mdlg.execute
 ' fermer le formulaire
 'mdlg.endExecute
End Sub

Sub AjoutBouton( dialogue as object,nomBouton as string, positionX as
integer,positionY as integer)

  Dim oDialogModel As Object , oButtonModel As Object 
  NomObj = nomBouton  
  oDialogModel = dialogue.Model

  oButtonModel =
oDialogModel.createInstance("com.sun.star.awt.UnoControlButtonModel" )

  	With oButtonModel
	    .Name = NomObj
	    .Label = "affecter"
	    .PushButtonType="STANDARD"
	    .Tabstop = True
	    .PositionX = positionX 'position horizontale
	    .PositionY = positionY 'position verticale
	    .Width = 27 'largeur
	    .Height = 14 'hauteur
  	End With
  	' insérer le bouton sur le formulaire
	oDialogModel.insertByName( NomObj , oButtonModel )

	' ici c'est un listener qui permet après d'intercepter un clic sur le
	' bouton et d'éxécuter une macro. Pour cela il faut que la macro s'appelle
	' nomDuBouton_actionPerformed

	oButtonControl = dialogue.getControl(NomObj)
	cEventListenerName =NomObj
	' oActionListener = CreateUnoListener( cEventListenerName + "_",
"com.sun.star.awt.XActionListener" ) 
	oActionListener = CreateUnoListener(
"NomBouton_","com.sun.star.awt.XActionListener" ) 
	oButtonControl.addActionListener( oActionListener )
End Sub

' ===============Le gestionnaire d'événement==========================
public sub NomBouton_dispose(e as object)
'on error resume next
	msgbox "Salut :" & e.source.model.name
end sub

Gmane