Saltos de línea en control RTF

715 views
Skip to first unread message

Ultraton500

unread,
Dec 11, 2020, 3:27:21 AM12/11/20
to Comunidad de Visual Foxpro en Español
Qué tal colegas. Buen día.
Quería consultarles cómo se hace para que no se supriman los saltos de línea en un control RTF.  Probé reemplazándolos por "\Line" pero no funcionó y no sé si se deben reemplazar por alguna otra cadena en particular o cómo se debe hacer.
Con el siguiente código se puede ver cómo se el salto de línea es ignorado.

lcTexto "AAAA" + CHR(13) + "BBBB"

TEXT TO sStr ADDITIVE TEXTMERGE NOSHOW PRETEXT 1+2
    {\rtf1\ansi\deff0
    {\colortbl;
        \red0\green0\blue0;
        \red255\green0\blue255;
        \red0\green128\blue0;
        \red0\green0\blue255;
    }
    <<lcTexto>>
    }
ENDTEXT

THISFORM.Olecontrol2.TextRtf = sStr


Desde ya muchas gracias por sus comentarios.

Saludos cordiales.
Javier Pérez.

Jose Antonio Blasco

unread,
Dec 11, 2020, 3:53:01 AM12/11/20
to Comunidad de Visual Foxpro en Español
Buenas Javier, 
Para el caso de un control RTF, no sería necesaria la combinación de CHR(13)+CHR(10)  ??

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2



--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/c198f38c-00a3-48c1-9dbf-5fbfd4188a99n%40googlegroups.com.

ZeRoberto

unread,
Dec 11, 2020, 6:07:02 AM12/11/20
to publicesvfoxpro
Probaste con \n

Saludos 

Ze 


--

Víctor Hugo Espínola Domínguez

unread,
Dec 11, 2020, 10:07:14 AM12/11/20
to publice...@googlegroups.com
Chr(13) es el código para retorno de carro, lo que hace es ir al inicio de la línea, Chr(10) es el código para avance de línea. En DOS/Windows se usa Chr(13)+Chr(10), en Unix creo que solo Chr(10)

Saludos,
Víctor.
Lambaré - Paraguay.



--

Ultraton500

unread,
Dec 11, 2020, 12:59:52 PM12/11/20
to Comunidad de Visual Foxpro en Español
Buenas tardes José, Ze y Víctor. Gracias por responder.

Tanto para     "AAAA" + CHR(13) + CHR(10) + "BBBB"     como para     "AAAA"  + CHR(10)  + "BBBB"     el salto de línea se realiza en VFP pero lo que se ve en el control RTF es "AAAABBBB", es decir, sigue suprimiendo los saltos de línea.

Y con  "AAAA \n BBBB"  solo se ve "AAAA".

Voy a seguir investigando, cualquier otra sugerencia es bienvenida.

Saludos!
Javier.

ZeRoberto

unread,
Dec 12, 2020, 1:43:45 AM12/12/20
to publicesvfoxpro
Acabo de hacer las pruebas y si me hace el salto de linea

With ThisForm.ocxRich
     .Text = "Hola" + Chr(10) + "Como" + Chr(10) + "Estas"
EndWith

richtext.png

Saludos

Ze




Ultraton500

unread,
Dec 12, 2020, 6:44:37 PM12/12/20
to Comunidad de Visual Foxpro en Español
Gracias Ze por tomarte el tiempo de hacer la prueba.
Así es, de esa forma funciona pero para asignarle color a determinados caracteres se debe especificar el texto con TEXT... ENDTEXT y asignárselo a la propiedad TextRTF del control de la siguiente manera:

lcTexto = "AA+AA" + CHR(13) + "BB+BB"
lcTexto = STRTRAN(lcTexto,'+','\cf2+\cf1 ')
TEXT TO sStr ADDITIVE TEXTMERGE NOSHOW PRETEXT 1+2
    {\rtf1\ansi\deff0
    {\colortbl;
        \red0\green0\blue0;
        \red255\green0\blue255;
        \red0\green128\blue0;
        \red0\green0\blue255;
    }
    <<lcTexto>>
    }
ENDTEXT
THISFORM.Olecontrol2.TextRtf = sStr


En este caso los signos "+" tendrían un color determinado dentro del texto y para que funcione a medida que se va escribiendo este código debe estar en el evento Change del control.
Al final lo que hice hace unos momentos fue hacer saltos de línea en un control RTF y obtener el código RTF para ver cómo se representan. Así es como descubrí que la sintaxis es "\par".

lcTexto = THISFORM.Olecontrol1.TEXT
lcTexto = STRTRAN(lcTexto,CHR(13),'\par')
TEXT TO sStr ADDITIVE TEXTMERGE NOSHOW PRETEXT 1+2
    ...
    ...
ENDTEXT
THISFORM.Olecontrol2.TextRtf = sStr


Nuevamente muchas gracias a los tres por su colaboración.

Saludos cordiales.
Javier Pérez.

Ultraton500

unread,
Dec 12, 2020, 11:11:38 PM12/12/20
to Comunidad de Visual Foxpro en Español
Perdón, me equivoqué al escribir Olecontrol1 en la 1er. línea del último ejemplo en lugar de Olecontrol2.

Saludos! 

ZeRoberto

unread,
Dec 14, 2020, 11:03:28 PM12/14/20
to publicesvfoxpro
Bueno lo que hice es escribir datos en el RichText dale Enter y luego leer la propiedad TextRTF y descubrir el salto de página es \par

rtf.png

Disculpa la demora

Saludos

Ze




Ultraton500

unread,
Dec 16, 2020, 3:16:54 AM12/16/20
to Comunidad de Visual Foxpro en Español
Gracias Ze. Así es, llegamos a la misma conclusión. 

Saludos cordiales.
Javier.

Reply all
Reply to author
Forward
0 new messages