Avanzo poco a poco en lo que quiero hacer al final.
Actualmente lo que quiero es haciendo clic en cada ListBox que me mueste la posicion. Es decir, acceder al metodo .getPosition y de ahí poder acceder a X y Y.
No debo de esta tan mal porque cuando hago clic en las Etiquetas y en los ListBox, primero muesto el nombre del buen ControlShape y luego el nombre del Objeto, es decir si es la Etiqueta el nombre de la Etiqueta, lo mismo por cada ListBox.
Solo que en esta linea, me sale que la Variable objeto no fue declarada.
Código: Seleccionar todo
ThisComponent.getCurrentController.getControl( oControl.getModel.getParent().getByName(oControl.GetModel.Name).Name )
Código: Seleccionar todo
Function crear_objeto(mtype as String, ancho as long, alto as long) as Object
Dim oFormGroupes as Object
Dim oFormLabels as Object
Dim oNouveauFormControl as Object
Dim oNouveauLBModel as Object
Dim Context as object
Dim DB as object
Dim Conn as object
Dim Stmt as object
Dim strSQL as String
Dim ResultSet as object
Dim nb_ctrl as Integer
Dim maFormListBox as Object
Dim oNuevaEtiqueta As Object
Dim oNuevaEtiquetaModelo As Object
if mtype = "label" then
oFormLabels = ThisComponent.DrawPage.Forms.getByName("MesLabels")
oNuevaEtiqueta = ThisComponent.createInstance("com.sun.star.drawing.ControlShape")
Call CambiaTam( oNuevaEtiqueta, ancho, alto )
oNuevaEtiquetaModelo = ThisComponent.createInstance("com.sun.star.form.component.FixedText")
oNuevaEtiquetaModelo.Name = "Groupe" & qteGroupes
oNuevaEtiquetaModelo.Label = "Groupe" & qteGroupes
oNuevaEtiqueta.Control = oNuevaEtiquetaModelo
oFormLabels.insertByIndex(0, oNuevaEtiquetaModelo)
ThisComponent.DrawPage.add( oNuevaEtiqueta )
Agrega_Macro(oFormLabels, 0)
crear_objeto = oNuevaEtiqueta
else
oFormGroupes = ThisComponent.DrawPage.Forms.getByName("MesGroupes")
oNouveauFormControl = ThisComponent.createInstance("com.sun.star.drawing.ControlShape")
Call CambiaTam( oNouveauFormControl, ancho, alto )
oNouveauLBModel = ThisComponent.createInstance("com.sun.star.form.component.ListBox")
oNouveauLBModel.Name = "Groupe" & qteGroupes
oNouveauFormControl.Control = oNouveauLBModel
oFormGroupes.insertByIndex(0, oNouveauLBModel)
ThisComponent.DrawPage.add( oNouveauFormControl )
Agrega_Macro (oFormGroupes, 0)
crear_objeto = oNouveauFormControl
end if
End Function
Sub mueve ( oObj as Object, posicion_izquierda as Integer, posicion_arriba as Integer)
oObj.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
Dim oPos As New com.sun.star.awt.Point
oPos.X = posicion_izquierda
oPos.Y = posicion_arriba
oObj.setPosition( oPos )
End Sub
Sub Agrega_Macro (oForm as Object, index as long)
Dim oEvent as new com.sun.star.script.ScriptEventDescriptor
oEvent.ListenerType = "com.sun.star.awt.XMouseListener"
oEvent.EventMethod = "mousePressed"
oEvent.ScriptType = "StarBasic"
oEvent.ScriptCode = "Standard.Module1.DamePosition"
oForm.registerScriptEvent(index, oEvent)
end sub
Sub DamePosition(oEvt as Object)
Dim oControl as Object
Dim oCtrl as Object
oControl = oEvt.source
MsgBox oControl.getModel.getParent().Name
MsgBox oControl.getModel.getParent().getByName(oControl.GetModel.Name).Name
ThisComponent.getCurrentController.getControl( oControl.getModel.getParent().getByName(oControl.GetModel.Name).Name )
End Sub
Para poder ver los ListBox hay que hacer clic en el boton.
Gracias y a ver si me pueden ayudar.