[RESUELTO]Acceder a componente de dialogo con doble click

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
fedevi
Mensajes: 33
Registrado: Lun Oct 26, 2015 9:01 pm

[RESUELTO]Acceder a componente de dialogo con doble click

Mensaje 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

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
Última edición por fedevi el Mié Nov 25, 2015 8:07 pm, editado 1 vez en total.
OpenOffice 4.1.2 - Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

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

Mensaje 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

oControlComponentes = oDialogo.getControl("LDescripcion")
oControlComponentes.Text = oCelda.String
En vez de:

Código: Seleccionar todo

oControlComponentes = oDialogo.getModel("LDescripcion")
oControlComponentes.Title = oCelda.getString
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
fedevi
Mensajes: 33
Registrado: Lun Oct 26, 2015 9:01 pm

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

Mensaje 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
OpenOffice 4.1.2 - Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

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

Mensaje 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.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
fedevi
Mensajes: 33
Registrado: Lun Oct 26, 2015 9:01 pm

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

Mensaje por fedevi »

funcionó perfecto, gracias lo doy como resuelto
OpenOffice 4.1.2 - Windows 7
Responder