Página 1 de 1

[RESUELTO]Acceder a componente de dialogo con doble click

NotaPublicado: Mié Nov 25, 2015 12:16 am
por fedevi
Hola al foro, les cuento mi inquietud. Quiero que al realizar un doble click sobre una celda de calc, se muestre un cuadro de diálogo y me permita cambiar el contenido de la celda, ya que la hoja estará protegida.
A esto lo logré mediante el evento de hoja doble click, al cual le enganché la sig macro
Código: Seleccionar todo   Expandir vistaContraer vista
Sub ModificaDescripcion()
Dim oDialogo As Object
'Dim oControlComponentes As Object
Dim Res As Integer
Dim oCelda As Object
Dim oPosCelda As Object
Dim oHojaActual As Object
Dim sTmp As String

   DialogLibraries.LoadLibrary( "Standard" )
   oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("DlgModificaDescripcion") )
   
   oCelda = thisComponent.getCurrentSelection()
   oPosCelda = oCelda.getRangeaddress()

   'esto que sigue es para probar ubicar posicion de la celda donde se clickea
   sTmp = "El rango esta en la hoja: " & oPosCelda.Sheet & Chr(13) & _
         "Columna de inicio: " & oPosCelda.StartColumn & Chr(13) & _
         "Fila de inicio: " & oPosCelda.StartRow & Chr(13) & _
         "Columna final: " & oPosCelda.EndColumn & Chr(13) & _
         "Fila final: " & oPosCelda.EndRow

   MsgBox sTmp
   
   oControlComponentes = oDialogo.getModel("LDescripcion")
   oControlComponentes.Title = oCelda.getString
   'El método execute devuelve un valor
   Res = oDialogo.execute()
   if Res = 1 then
   
   else
   
   End if   

   oDialogo.dispose()   
   
End Sub

hasta aqui, se muestra el dialogo cuando se realiza el doble click, pero cuando al label cuyo nombre es LDescripcion, no muestra lo que se le asigna, y en el observador del IDE cuando quiero ver el valor de oControlComponentes.Title me muestra out of scope, me pueden orientar como hago para acceder a estas propiedades?
A esta macro la grabo en el documento, lo mismo que al cuadro de diálogo, bueno estamos en contacto, saludos

Fede

Re: Acceder a componente de dialogo con doble click en calc

NotaPublicado: Mié Nov 25, 2015 12:44 am
por fornelasa
Antes que nada ¿Que debe entenderse por?
fedevi escribió:no muestra lo que se le asigna,

Si hubiese entendido bien debería ser:
Código: Seleccionar todo   Expandir vistaContraer vista
oControlComponentes = oDialogo.getControl("LDescripcion")
oControlComponentes.Text = oCelda.String

En vez de:
Código: Seleccionar todo   Expandir vistaContraer vista
oControlComponentes = oDialogo.getModel("LDescripcion")
oControlComponentes.Title = oCelda.getString

Saludos, Federico.

Re: Acceder a componente de dialogo con doble click en calc

NotaPublicado: Mié Nov 25, 2015 12:25 pm
por fedevi
Hola fornelasa, gracias por la respuesta, probé con la propiedad text pero me da error de propiedad no encontrada, lo que quiero hacer es mostrar en un componente label del diálogo el contenido de la celda donde se realizó el doble click. Supongamos que en la celda dice "botella de jugo 250cc", entonces quiero mostrar esa información en un label o un cuadro de texto.
Puede ser que esté en el ámbito de la variable? he definido a oDialogo como global pero sigue igual, saludos

Fede

Re: Acceder a componente de dialogo con doble click en calc

NotaPublicado: Mié Nov 25, 2015 5:23 pm
por fornelasa
Si exacto, eso es lo que hace si cambiamos en tu macro la que envias aqui las dos lineas de codigo tal cual se indicó arriba, he vuelto a hacer las pruebas y funciona de acuerdo a lo solicitado.
Saludos, Federico.

Re: [RESUELTO]Acceder a componente de dialogo con doble clic

NotaPublicado: Mié Nov 25, 2015 8:09 pm
por fedevi
funcionó perfecto, gracias lo doy como resuelto