[RESUELTO] Módulo selección texto

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Satsuki
Mensajes: 32
Registrado: Mar Sep 15, 2009 5:07 pm

[RESUELTO] Módulo selección texto

Mensaje por Satsuki »

Hola
Estoy realizando una aplicación y aún está algo verde, así que puede que no me explique muy bien. Y quería aplicarla a openoffice. Consistiría que a la hora de escribir un texto y seleccionar una parte con el ratón, el programa detectase las palabras seleccionadas y estas las enviase a un buscador para comprobar las incidencias.

Apenas tengo conocimientos de las posibilidades de este editor de textos y no se si algo así es posbible. Ya he conseguido realizar una conexión con un buscador, de manera que le paso unos parámetros y me devuelve los resultados que coinciden con el texto que deseo. Ahora, para que esto tuviese una mayor utilidad, quería aplicarlo a un editor de textos. ¿Sería posible? ¿Existe echo algo así?

Gracias
Última edición por mauricio el Mar Sep 29, 2009 3:34 pm, editado 1 vez en total.
Razón: Marcar como resuelto
OpenOffice 3.1.0 en Ubuntu 8.04
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Módulo selección texto

Mensaje por mauricio »

Hola...

Hay varias formas de obtener el texto actualmente seleccionado en Writer, la primera es con el cursor de la vista

Código: Seleccionar todo

Sub TextoSeleccionado1()
Dim oDoc As Object
Dim oVCursor As Object

	oDoc = ThisComponent
	oVCursor = oDoc.getCurrentController.getViewCursor()	
	MsgBox oVCursor.getString()
	
End Sub
pero si tienes seleccionado, por ejemplo, una forma (shape) el método anterior fallara, para evitarlo puedes usar la selección actual:

Código: Seleccionar todo

Sub TextoSeleccionado2()
Dim oDoc As Object
Dim oSel As Object
Dim co1 As Integer

	oDoc = ThisComponent
	oSel = oDoc.getCurrentController.getSelection.getByIndex(0)
	MsgBox oSel.getString
	
End Sub
El método getSelection, siempre te devuelve un conjunto de rangos de texto, pero si tienes más de una selección, casi siempre el primer elemento es el cursor de la vista, que estará vacío, para garantizar que siempre devuelve la primer selección, usas:

Código: Seleccionar todo

Sub TextoSeleccionado3()
Dim oDoc As Object
Dim oSel As Object
Dim co1 As Integer

	oDoc = ThisComponent
	oSel = oDoc.getCurrentController.getSelection()
	If oSel.getCount > 1 Then
		oSel = oSel.getByIndex(1)
	Else
		oSel = oSel.getByIndex(0)
	End If
	
	MsgBox oSel.getString
		
End Sub
Ahora, solo resta, separar las palabras de la selección...

Veo que usas OOo 2.4, yo lo he probado en 3.1.1, te sugiero actualizar tu versión.

Saludos

Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Satsuki
Mensajes: 32
Registrado: Mar Sep 15, 2009 5:07 pm

Re: Módulo selección texto

Mensaje por Satsuki »

Muchísimas gracias por la respuesta. Soy bastante inexperta y no se como probar los códigos que me recomendastes. ¿Hay algún tutorial o algo, aunque sea en inglés, que explique para los principiantes como manejarse? Hasta ahora en el openoffice no ha probado a añadirle ninguna funcionalidad.

Gracias
Saludos
OpenOffice 3.1.0 en Ubuntu 8.04
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Módulo selección texto

Mensaje por mauricio »

Hola...

En mi libro esta explicado, creo, con bastante claridad como probar esta y cualquier macro que te encuentres...

http://user.services.openoffice.org/es/ ... =50&t=1545

Saludos

Mauricio
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Satsuki
Mensajes: 32
Registrado: Mar Sep 15, 2009 5:07 pm

Re: Módulo selección texto

Mensaje por Satsuki »

Muchísima gracias. Muy buen libro
OpenOffice 3.1.0 en Ubuntu 8.04
Responder