Autore Topic: Colorare testo in Gambas  (Letto 797 volte)

Offline cellman

  • Gamberetto
  • *
  • Post: 14
    • Mostra profilo
Colorare testo in Gambas
« il: 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...

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #1 il: 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.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline cellman

  • Gamberetto
  • *
  • Post: 14
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #2 il: 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...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #3 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline cellman

  • Gamberetto
  • *
  • Post: 14
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #4 il: 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:

Offline cellman

  • Gamberetto
  • *
  • Post: 14
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #5 il: 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?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Colorare testo in Gambas
« Risposta #6 il: 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
« Ultima modifica: 06 Febbraio 2021, 01:25:20 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »