Tengo una macro (copiada) pero que me ha servido para identificar por código qué es un Marco de Texto [Servicio TextContent] de Writer. Según la API de Apache OO, un Marco de Texto es una instancia del Servicio TextFrame.
Es decir instancio con “createInstance” a TextFrame y obtengo una Marco de Texto. Este Marco de Texto lo puedo usar. Quiero poner el cursor dentro del Marco de Texto. ¿Me puede ayudar alguien a usar el SetFocus para este propósito?. Es decir una vez creado el Marco de Texto, colocar dentro de él el cursor.
Adjunto la macro en cuestión copiada.
Le asigno al objeto “oFrame” el método SetFocus [oFrame.SetFocus] para colocar el cursor en el interior del Marco de Tetxto y no lo hace.
Se debe ejercutar la macro en un documento de Writer.
Gracias de antemano al Foro.
[RESUELTA]Colocar el Foco dentro de un Marco de Texto
-
- Mensajes: 15
- Registrado: Dom Oct 11, 2015 12:20 pm
[RESUELTA]Colocar el Foco dentro de un Marco de Texto
- Adjuntos
-
- Macro INSERTAR Marco de Texto.odt
- (12.39 KiB) Descargado 301 veces
Última edición por Preguntar-Responder el Mié Mar 10, 2021 10:22 pm, editado 1 vez en total.
Libre Office 4.4.5.3. Sistema Operativo Windows 8 Pro
Re: Colocar el Foco dentro de un Marco de Texto
Usé el método gotoRange del cursor
Código: Seleccionar todo
Sub principal
oFrame = ThisComponent.createInstance ("com.sun.star.text.TextFrame")
oFrame.Width = 6000
ThisComponent.Text.insertTextContent (ThisComponent.Text.Start, oFrame, false)
oFrame.Text.String = "Hola, este texto está dentro del marco"
'oFrame.SetFocus()
'código nuevo
TextStart = oFrame.Text.Start
oVC = ThisComponent.CurrentController.ViewCursor
oVC.gotoRange(TextStart, False)
End Sub
-
- Mensajes: 15
- Registrado: Dom Oct 11, 2015 12:20 pm
Re: Colocar el Foco dentro de un Marco de Texto
Ante todo gracias por responder con tanta claridad.
Esta pregunta la planteé porque no sabía como introducir el cursor dentro de un Marco de Texto creado en la misma macro pensando que sería muy parecido para hacer la misma tarea (colocar el cursor dentro de un Marco de Texto pero ahora que ya estuviese
en el documento) dentro del documento, pero claro ese Marco de Texto ya existente no puedo manejarlo porque no se cual es nombre del objeto que le corresponde.
Adjunto un archivo donde se ve con claridad lo que quiero decir.
Muchas gracias por la respuesta de antes.
Esta pregunta la planteé porque no sabía como introducir el cursor dentro de un Marco de Texto creado en la misma macro pensando que sería muy parecido para hacer la misma tarea (colocar el cursor dentro de un Marco de Texto pero ahora que ya estuviese
en el documento) dentro del documento, pero claro ese Marco de Texto ya existente no puedo manejarlo porque no se cual es nombre del objeto que le corresponde.
Adjunto un archivo donde se ve con claridad lo que quiero decir.
Muchas gracias por la respuesta de antes.
- Adjuntos
-
- Documento CONSULTA.odt
- (11.8 KiB) Descargado 285 veces
Libre Office 4.4.5.3. Sistema Operativo Windows 8 Pro
Re: Colocar el Foco dentro de un Marco de Texto
Cada marco de texto tiene un nombre y un índice. Si el documento contiene solamente un marco de texto, puede usar su índice para identificarle
Si hay varios marcos de texto en el documento, lo más fácil es dar un nombre fijo al marco que es el objetivo de la macro.
Código: Seleccionar todo
oFrame = ThisComponent.TextFrames.getByIndex(0)
TextStart = oFrame.Text.Start
oVC = ThisComponent.CurrentController.ViewCursor
oVC.gotoRange(TextStart, False)
-
- Mensajes: 15
- Registrado: Dom Oct 11, 2015 12:20 pm
Re: Colocar el Foco dentro de un Marco de Texto
Perfecto doy la consulta por RESUELTA y la cierro, no sin antes dar las gracias por la precisión y rapidez en la respuesta.
Sinceramente muchas gracias.
Sinceramente muchas gracias.
Libre Office 4.4.5.3. Sistema Operativo Windows 8 Pro