[RESUELTO] Como asignar una macro a un control de un dialogo
Publicado: Mar Dic 05, 2017 2:49 am
Hola a todos
Esta vez es para pedir ayuda si es posible.
Estaba trabajando en un menú sencillo con algunas etiquetas que voy creando en tiempo real y se me ocurrió que si en vez de usar listener como
Si habra alguna forma distinta de asignar una macro a un control como se hace desde la GUI o con los Listener.
Encontre un ejemplo de una funcion que inserta una forma en la hoja y le asigna una macro. Pero este método me parece que solo sirve para el docummento y no funciona con un control de un dialogo.
La macro crea un rectángulo al cual se le asigna la macro Main del Módulo y ejecuta el diálogo.
Si es posible quisiera que me orienten en como hacer lo mismo con el boton Salir del Diálogo y que ejecute la macro salir.
Les dejo un ejemplo para que lo vean mas claro.
Desde ya les agradezco la ayuda que puedan aportar.
Esta vez es para pedir ayuda si es posible.
Estaba trabajando en un menú sencillo con algunas etiquetas que voy creando en tiempo real y se me ocurrió que si en vez de usar listener como
Código: Seleccionar todo
Mouse = CreateUnoListener( "MenuClick_", "com.sun.star.awt.XMouseListener" )Código: Seleccionar todo
Sub MenuClick_mousePressed(oEv)
Dim Ctrl_Evento as String
Ctrl_Evento = oEv.Source.Model.Name
if Ctrl_Evento = "Salir" then
Salir
end if
End Sub
Encontre un ejemplo de una funcion que inserta una forma en la hoja y le asigna una macro. Pero este método me parece que solo sirve para el docummento y no funciona con un control de un dialogo.
Código: Seleccionar todo
Sub CreerRectangleAffecterMacro
dim oClasseur as object
dim oPage as object
dim oMonObjet as object
dim sTaille as new com.sun.star.awt.Size
dim sPos as new com.sun.star.awt.Point
dim oEvts as object
dim oEvt(1) as new com.sun.star.beans.PropertyValue
oClasseur = thiscomponent
oPage = oClasseur.sheets.getByName("Sheet1").DrawPage
sTaille.Height = 2310
sTaille.Width = 4620
sPos.X = 3000
sPos.Y = 2310
oMonObjet = oClasseur.createInstance("com.sun.star.drawing.RectangleShape")
oMonObjet.Size = sTaille
oMonObjet.Position = sPos
oPage.add(oMonObjet)
oEvts = oMonObjet.Events 'accès aux événements disponibles pour cette image
oEvt(0).Name = "EventType" 'confection d'un tableau de propriété pour décrire la macro
oEvt(0).Value = "Script" 'qui sera associée à l'événement
oEvt(1).Name = "Script"
oEvt(1).Value = "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document"
oEvts.replaceByName("OnClick", oEvt()) 'attribution de la macro à l'événement "Clic sur l'objet"
msgbox "Terminé"
End Sub
Si es posible quisiera que me orienten en como hacer lo mismo con el boton Salir del Diálogo y que ejecute la macro salir.
Les dejo un ejemplo para que lo vean mas claro.
Desde ya les agradezco la ayuda que puedan aportar.