Gambas-it

Gambas3 => Programmazione => Topic aperto da: cellman - 12 Gennaio 2014, 15:48:45

Titolo: Colorare testo in Gambas
Inserito da: cellman - 12 Gennaio 2014, 15:48:45
Ancora io che rompo le scatole. Allora: ho una stringa in cui vorrei poter colorare alcune parti del testo. C'è modo? Ho provato usando i tag HTMl, ma niente da fare... Sto programmando in Gambas 3.
Grazie...
Titolo: Re: Colorare testo in Gambas
Inserito da: Top Fuel - 12 Gennaio 2014, 15:59:51
Devi usare un controllo testo che supporta l'html. Vuott ne ha parlato varie volte, se cerchi lo trovi sicuramente.
Titolo: Re: Colorare testo in Gambas
Inserito da: cellman - 12 Gennaio 2014, 16:48:21
Si ho visto ma non mi funziona... Devo aggiungere librerie o simili nel programma? Perchè se scrivo:

Dim t3 As String
t3="<FONT color=red> testo </FONT>"

nella stringa trovo scritto tutto quello che ho messo tra virgolette e non testo colorato di rosso...
Titolo: Re: Colorare testo in Gambas
Inserito da: vuott - 12 Gennaio 2014, 17:32:26
Devi usare un controllo testo che supporta l'html.

Come ha ben detto Top Fuel, la cosa importante è utilizzare un oggetto capace di supportare i tag HTML, ad esempio la TextEdit (in tal caso va utilizzata la proprietà .RichText), oppure la TextLabel.

Riporto la pagina al riguardo nella nostra WIKI:

http://www.gambas-it.org/wiki/index.php?title=Controlli_e_finestre_che_supportano_il_codice_HTML
Titolo: Re: Colorare testo in Gambas
Inserito da: cellman - 12 Gennaio 2014, 17:42:11
Grazie sempre gentilissimi. Il problema è proprio che tentavo di colorare il testo di un Textbox. Cosa non fattibile quindi  :hard:
Titolo: Re: Colorare testo in Gambas
Inserito da: cellman - 12 Gennaio 2014, 18:30:32
Sono riuscito a convertire il textbox in textlabel mantenendo il programma funzionante. Ora però riesco a cambiare il colore di tutto il testo, ma non di un particolare carattere in una particolare posizione.
Non mi funziona cioè un comando tipo

Mid(TextBox2.text, j, 1) = "<FONT color=#FF3300> testo </FONT>"

Non c'è modo di andare a cambiare o colorare solo un certo carattere?
Titolo: Re: Colorare testo in Gambas
Inserito da: vuott - 13 Gennaio 2014, 01:12:49
Non c'è modo di andare a cambiare o colorare solo un certo carattere?

Certamente.

Se vuoi utilizzare direttamente la stringa di caratteri, puoi fare ad esempio così:
Codice: gambas [Seleziona]

Public Sub Form_Open()

   TextLabel1.Text = "te<FONT color=#FF3300>s</FONT>to"

End



Ma mi pare che la tua necessità sia quella di cambiare il colore di un carattere operando all'interno della variabile di tipo Stringa che contiene il testo. Questo è posibile, ma in tal caso bisognerà porre i tag HTML all'interno di variabili di tipo Stringa (da utilizzare poi nel codice, ogni qualvolta che se ne abbia bisogno) e gestire un po' il testo con qualche funzione. Un esempio fra varie modalità può essere l'utilizzo di queste funzioni-stringa:
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Dim j As Byte = 3
  Dim s1, s2, s3 As String

   s1 = "testo"
   s2 = "<FONT color=#FF3300>"
   s3 = "</font>"
   
' Effettuiamo la seguente operazione sulla stringa di testo di cui vogliamo modificare il terzo carattere da sinistra:
' ....prendiamo il primi due caratteri a sinistra e li mostriamo nella "TextLabel";
' poi inseriamo il primo tag HTML (scritto nella variabile s2) per la colorazione;
' poi prendiamo il terzo carattere (partendo da sinistra);
' poi inseriamo il tag HTML (scritto nella variabile s3) di chiusura;
' quindi scriviamo i restanti caratteri del testo, ed più precisamente un numero di caratteri partendo da destra pari
' alla lunghezza dell'intero testo meno 2 + 1: i primi due caratteri ed il carattere che abbiamo colorato:
   TextLabel1.Text = Left(s1, 2) & s2 & Mid(s1, j, 1) & s3 & Right(s1, Len(s1) - (2 + 1))

End