Comunidad Gambas-es
[SOSLAYADO] text-align:justify en una TextLabel - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: [SOSLAYADO] text-align:justify en una TextLabel (/thread-1601.html)



text-align:justify en una TextLabel - Grandamakulo - 30-01-2024

Hola, compañeros:
Asocio el siguiente texto a la propiedad .Text de una TextLabel:
Código:
<!DOCTYPE html>
<html>
  <head>
    <style>p{
      font-family:'Ubuntu';
      font-size:12px;
      text-align:justify;
      text-indent:25px;
      line-height:100%;
      margin-bottom:0;
      }
    </style>
  </head>
  <body>
    <p>En un lugar de La Mancha de cuyo nombre no quiero acordarme, no ha mucho que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor.</p>
  </body>
</html>

Pues resulta que text-align: no funciona con la opción justify —en concreto queda por defecto, es decir a la izquierda, como si no admitiese esta opción—, pero sí con cualquiera de las otras tres.
¿Alguna ayudita?
Gracias de antemano.


RE: text-align:justify en una TextLabel - jguardon - 30-01-2024

Eso que escribes es CSS3 puro y duro, que creo que no se soporta en su totalidad.

Prueba escribiendo directamente en el texto las etiquetas "inline" de esta manera:

[code]

Ahora no recuerdo si para escapar las comillas dobles se usa una o dos contrabarras, prueba y nos cuentas.

Espero que te sirva, escribo desde el móvil.

Saludos


RE: text-align:justify en una TextLabel - Grandamakulo - 30-01-2024

(30-01-2024, 17:37)jguardon escribió: Eso que escribes es CSS3 puro y duro, que creo que no se soporta en su totalidad.

Prueba escribiendo directamente en el texto las etiquetas "inline" de esta manera:

[code]

Ahora no recuerdo si para escapar las comillas dobles se usa una o dos contrabarras, prueba y nos cuentas.

Espero que te sirva, escribo desde el móvil.

Saludos

Fek!, pues no me vale, porque tiene que dar preformato al texto completo previo a la introducción del texto. En cualquier caso, muchas gracias.


RE: text-align:justify en una TextLabel - vuott - 30-01-2024

Propongo:
Código:
Public Sub Form_Open()

  TextLabel1.Background = Color.SoftYellow
  TextLabel1.Text = "<P align=justify>En un lugar de La Mancha de cuyo nombre no quiero acordarme, no ha mucho que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor."

End
o tambien:
Código:
Public Sub Form_Open()

  TextLabel1.Background = Color.SoftYellow
  TextLabel1.Text = "<DIV align=justify>En un lugar de La Mancha de cuyo nombre no quiero acordarme, no ha mucho que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor."

End



RE: text-align:justify en una TextLabel - Grandamakulo - 31-01-2024

Frater Vuott:
Muchas gracias por el aporte. Sin embargo, y tal cual le comento a Pater Abbatis Jguardon, el problema que tengo es que debo «preformatear» la etiqueta antes, ya que su contenido es dinámico y externo, es decir, mejor no tocarlo.
En cualquier caso, reitero el agradecimiento.


RE: text-align:justify en una TextLabel - jguardon - 31-01-2024

Cuando dices "preformatear", ¿ te refieres a los saltos de línea?

En ese caso prueba usando <br> donde exista un 'crln' o similar. He encontrado un artículo interesante respecto a la etiqueta <br>.

Saludos


RE: text-align:justify en una TextLabel - Grandamakulo - 01-02-2024

No, no, con «preformatear» me refiero a tener un CSS que me permita colocar y quitar los textos del TextLabel sin tener que tocar nada de ellos. Esto es, tal cual lo coloco en el ejemplo del primer mensaje. Vamos, como si fuera una página HTML.


RE: text-align:justify en una TextLabel - jguardon - 01-02-2024

Entonces crea una variable de texto crudo a la que asignas tu texto y la intercalas entre las etiquetas de párrafo <p> usando la función Subst():

Código:
Dim vartxt, myTxtLabel as String

vartxt = En un lugar de La Mancha de cuyo nombre no quiero acordarme, no ha mucho que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor.

myTxtLabel = Subst("<p style=\"text-align:justify;font-size:12px;\">&1</p>", vartxt)

https://gambaswiki.org/wiki/lang/subst?l=es

De esa manera, puedes asignar todo el texto que quieras a la variable antes de mostrarla en el Label ya formateada. Si conviertes lo de arriba en una función que reciba la cadena de texto crudo y devuelva el texto formateado, ya lo tienes.
 


Me corrijo en cuanto a la sintaxis CSS: https://gambaswiki.org/wiki/doc/richtext

Parece que los estilos CSS no están soportados, por lo tanto, hay que usar etiquetas html de tipo font, align, etc. como ha hecho vuott. Pero la forma de intercalar el texto entre las etiquetas es la misma, usando la función Subst() con su comodín &n.

[code]

Yo soy partidario de cerrar las etiquetas html, aunque vuott no lo hace nunca, no sé por qué...

Saludos


RE: text-align:justify en una TextLabel - Grandamakulo - 01-02-2024

Sí, no es lo que buscaba, pero a falta de pan, buenas son tortas.  Smile
Muchas gracias.


RE: text-align:justify en una TextLabel - vuott - 02-02-2024

(01-02-2024, 19:35)jguardon escribió: Yo soy partidario de cerrar las etiquetas html, aunque vuott no lo hace nunca, no sé por qué...

...porque de todos modos funciona. Big Grin