4D v13.4

Multiestilo (área de texto enriquecido)

Inicio

 
4D v13.4
Multiestilo (área de texto enriquecido)

Multiestilo (área de texto enriquecido)  


 

4D permite el uso de las áreas de texto enriquecido con variaciones de estilo individuales. Por ejemplo, ahora es posible tener palabras en negrita y cursiva o a color dentro de un área de texto:

Esta función aplica a los campos y variables de tipo Alfa y Texto, así como también a los listbox. Es soportada para formularios página, lista, tanto para visualización como para impresión. 

Las opciones específicas en la Lista de propiedades configuran el funcionamiento de las áreas de texto enriquecido.

Los atributos disponibles son fuente, tamaño, estilo, color del texto y (sólo en Windows) color de fondo. Para modificar los atributos de estilo en un área de texto enriquecido, hay dos posibilidades diferentes:

  • Durante la ejecución, utilice un menú pop-up automático (la disponibilidad de este menú se configura en la Lista de propiedades).
  • Por programación, utilizando el comando OBJECT SET STYLED TEXT ATTRIBUTES.

En las áreas de texto enriquecido, los atributos de estilo se almacenan como etiquetas HTML de tipo <SPAN>.  Cuando se muestra el área texto, estas etiquetas son interpretadas por 4D. Esto significa que el desarrollador puede especificar y modificar los atributos de estilo en un texto por programación. Los atributos <SPAN> soportados por 4D se describen a continuación. El comando OBJECT Get plain text recupera el texto plano sin etiquetas de estilo.

Nota: las áreas de texto enriquecido no son utilizables en los siguientes contextos: filtros de entrada, informes rápidos y el editor de etiquetas.

Las propiedades de gestión de texto enriquecido están disponibles para las variables editables, los campos y las celdas de listbox de tipo Alfa o Texto.

Esta opción (tema "Texto") activa la posibilidad de utilizar estilos específicos en el área seleccionada. Cuando esta opción está activa, 4D interpreta las posibles etiquetas HTML <SPAN> presentes en el área.

Por defecto, esta opción no está seleccionada.

Esta opción sólo aparece cuando la opción Multiestilo está seleccionada. También se encuentra en el tema "Texto".
Cuando esta opción está seleccionada, el área almacenará las etiquetas de estilo con el texto, incluso si no se ha hecho ninguna modificación. En este caso, las etiquetas corresponden al estilo por defecto. Cuando esta opción no está seleccionada, sólo se guardan las etiquetas de estilo modificadas.

Por ejemplo, este es un texto que incluye una modificación de estilo:

Si la opción "Guardar las etiquetas por defecto" no está seleccionada, el área sólo guarda la modificación. El contenido almacenado, es entonces:

¡Qué <SPAN STYLE="font-size:13.5pt">hermoso</SPAN> día!

Si la opción está seleccionada, el área guarda toda la información de formato. Una primera etiqueta genérica describe el estilo por defecto luego cada variación es objeto de un par de etiquetas anidadas. El contenido almacenado en el área es por lo tanto:

<SPAN STYLE="font-family:'Arial';font-size:9pt;text-align:left;font-weight:normal;font-style:normal;text-decoration:none;color:#000000;background-color:#FFFFFF">¡Qué <SPAN STYLE="font-size:13.5pt">hermoso</SPAN> día!</SPAN>

Esta opción (tema "Entrada") sólo aparece cuando la opción Multiestilo se ha seleccionado.

La opción Menú contextual activa para el usuario la posibilidad de llamar durante la entrada de datos a un menú emergente mediante un clic derecho en el área. Este menú pop-up ofrece comandos estándar de edición de texto (cortar, copiar, pegar) así como también los comandos de modificación de estilo soportados: fuente, tamaño, color, estilo y (Windows) color de fondo:

Cuando el usuario modifica un atributo de estilo a través de este menú emergente, 4D genera el evento de formulario On After Edit.

Notas:

  • También es posible modificar los estilos a través del comando OBJECT SET STYLED TEXT ATTRIBUTES. Tenga en cuenta que en este caso, no se genera ningún evento formulario.
  • El estilo "tachado" no es compatible con Mac OS. Sin embargo, la etiqueta correspondiente se puede utilizar por programación.

Los atributos de estilo soportados (fuente, tamaño, estilo y color) se conservan en caso de arrastrar - soltar o copiar - pegar texto con estilo entre:   

  • diferentes áreas de texto enriquecido en 4D (variables/campos texto y list boxes),
  • un área 4D Write y un área de texto enriquecido 4D,
  • un texto externo con estilo y un área de texto enriquecido 4D.

En los otros casos, los estilos se mantendrán en función del contexto.

Los comandos que se pueden utilizar para manipular los objetos texto por programación no aceptan ningún tipo de etiquetas de estilo integradas al texto. Actúan sobre el texto mostrado como en versiones anteriores de 4D. Se trata de los siguientes comandos:

Tenga en cuenta que al utilizar estos comandos con los comandos que manipulan cadenas de caracteres, es necesario filtrar los caracteres de formato utilizando el comando OBJECT Get plain text:

 HIGHLIGHT TEXT([Productos]Notas;1;Length(OBJECT Get plain text([Productos]Notas))+1)

  • Tema Propiedades de los objetos
    Los comandos que se pueden utilizar para modificar el estilo de los objetos (por ejemplo, OBJECT SET FONT) se aplican a todo el objeto y no a la selección.
    Tenga en cuenta que si el objeto no tiene el foco cuando se ejecuta el comando, la modificación se aplica simultáneamente al objeto (el área de texto) y a su variable asociada. Si el objeto tiene el foco, la modificación se lleva a cabo en el objeto, pero no en la variable asociada. La modificación sólo se aplica a la variable cuando el objeto pierde el foco. Recuerde este principio cuando programe las áreas de texto. 

Si la opción "Guardar las etiquetas por defecto"  está seleccionada para el objeto, el uso de estos comandos provocará una modificación de las etiquetas guardadas con cada objeto.

Cuando se utiliza con un área de texto enriquecido, el comando Get edited text (tema Eventos de formulario) devuelve el texto del área actual incluyendo las posibles etiquetas de estilo. 

Para recuperar el texto "plano" (texto sin etiquetas) que se está editando, debe utilizar el comando OBJECT Get plain text:

 OBJECT Get plain text(Get edited text)

Las búsquedas y las ordenaciones efectuadas entre los objetos multiestilos tienen en cuenta las posibles etiquetas de estilo guardadas en el objeto. Si una modificación de estilo se ha hecho dentro de una palabra, la búsqueda de la palabra no tendrá éxito.

Para poder efectuar búsquedas y ordenaciones válidas, debe utilizar el comando OBJECT Get plain text. Por ejemplo:

 QUERY BY FORMULA([MiTabla];OBJECT Get plain text([MiTabla]MicampoEstilo)="muy bien")

Este párrafo lista los atributos de las etiquetas <SPAN> soportadas por 4D en las áreas de texto enriquecido. Puede utilizar estas etiquetas para implementar una gestión personalizada de estilos. Sólo las etiquetas listadas a continuación son soportadas por 4D para las variaciones de estilo.

<SPAN STYLE="font-family: DESDEMONA"> ... </SPAN>

<SPAN STYLE="font-size: 20pt"> ... </SPAN>

  • Negrita
    <SPAN STYLE="font-weight: bold"> ... </SPAN>
  • Itálica o normal
    <SPAN STYLE="font-style: italic"> ... </SPAN>
    <SPAN STYLE="font-style: normal"> ... </SPAN>
  • Subrayado
    <SPAN STYLE="text-decoration: underline"> ... </SPAN>
  • Tachado
    <SPAN STYLE="text-decoration:line-through">...</SPAN>
    Nota: el estilo "tachado" no es soportado en Mac OS, pero esta etiqueta puede manejarse por programación

<SPAN STYLE="color:green"> ... </SPAN> 
o
<SPAN STYLE="color:#006CCC">...</SPAN>

<SPAN STYLE="background-color:green"> ... </SPAN>
o
<SPAN STYLE="background-color:#006CCC">...</SPAN>

Nota: bajo Mac OS, este atributo es ignorado. Se elimina cuando el objeto se modifica.

Para los atributos de color de fuente y de fondo, el valor de color puede ser el código hexadecimal de los colores RGB o el nombre de uno de los 16 colores HTML definidos para el estándar CSS por el W3C: 


 
PROPIEDADES 

Producto: 4D
Tema: Propiedades de los objetos activos

 
PALABRAS CLAVES 

texte riche, rich text area***