Shell   30-08-2022, 22:21
#1
Buenas!.

En este ejemplo se pretende que cada letra se imprima en un color.
Ahora que me fijo no era exactamente lo que quería, es el fondo lo que quiero cambiar, pero de cada letra.

[Imagen: CBxqzjv.png]

Código:
Private Const encabezado As String = "h2"

Public Sub Form_Open()
 
  Dim suncolor As String
  Dim spalabra As String  
  Dim i, j As Integer
 
  Randomize
 
  'Párrafo es esdrújula. Problema de código de página al mostrar con tilde.  
  'spalabra = "Muestra letras cada una de un color en un solo párrafo"  
  spalabra = "Muestra letras cada una de un color en un solo parrafo"
 
  'TextLabel1.Text = "<" & encabezado & "><meta charset=" & Quote("utf-8") & "/>"
 
  TextLabel1.Text = "<" & encabezado & ">"
    
  For j = 0 To String.Len(spalabra)
    suncolor = "#"
    For i = 1 To 3      
      'Color al azar sin tener en cuenta el fondo y que pueda no verse
      'TODO: Generar y comprobar antes
      'Concatenar números en hexadécimal con dos digitos en una variable de cadena
      suncolor &= CString(Hex(Rnd(0, 255), 2))
    Next   
    'Concatena texto tantas veces como letras tenga la palabra    
    TextLabel1.Text &= "<span style=" & "color:" & suncolor & ">" & spalabra[j] & "</span>"   
  Next   
  TextLabel1.Text &= "</" & encabezado & ">"
 
End

Quizás podía haber usado un gridview. Smile
Ah, no pude mostrar su tilde correspondiente en párrafo.

Saludos

Es sustituir prácticamente esto:

Código:
TextLabel1.Text &= "<span style=" & "color:" & suncolor & ">" & spalabra[j] & "</span>"
Por:
Código:
TextLabel1.Text &= "<span style=" & "background-color:" & suncolor & ">" & spalabra[j] & "</span>"
Última modificación: 30-08-2022, 22:31 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   31-08-2022, 09:59
#2
He añadido una segunda TextLabel para que en la primera cambie el color de las letras y en la segunda cambie solo el fondo.
Ahora son dos TextLabel en un formulario.

¿ El formulario no debería ajustarse al tamaño de las TextLabel en caso de que su propiedad AutoResize este a True ?.
He puesto su propiedad Arrangement a vertical. Lo cierto es que la etiqueta queda de esta forma al ejecutarse:

Ambas etiquetas tienen su propiedad expand a True.

[Imagen: HU0lFVV.png]

Subo el código fuente.

Saludos
Archivos adjuntos
.gz
TextoConColor-0.0.1.tar.gz (Tamaño: 12.35 KB Descargas: 2)

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   31-08-2022, 11:25
#3
En principio, si es la ventana principal, creo que no. Si lo embebes en otro contenedor, sí (hablo de memoria).

Saludos

No podemos regresar
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.