Oggetti grafici e di testo che supportano il codice HTML

Da Gambas-it.org - Wikipedia.

Gli Oggetti grafici e di testo che in Gambas supportano il codice HTML sono:

  • TextLabel
  • TextEdit [nota 1]
  • GridView[n, n] [nota 1]
  • InputBox
  • Message
  • Balloon

Supportano il codice html anche:

  • i Metodi ".DrawRichText()" e ".RichText()" [nota 2] della Classe Paint ;
  • in generale la Proprietà ".RichText" di qualsiasi oggetto grafico (qualora posseduta);
  • il Commento alle righe di codice;
  • la Proprietà ".Tooltip" di qualunque oggetto;
  • l'Oggetto WebView dei Componenti gb.qt5.webview e gb.qt6.webview.

Risultati ottimali si otterranno attivando i Componenti basati sulle risorse grafiche di QT. [nota 3]

Per verificare il grado di compatibilità di tali Oggetti con il codice HTML, anche al fine di comprendere quali istruzioni siano supportate e gestite, si è proceduto ad effettuare una prova empirica delle varie istruzioni HTML 5.

Dalla prova è emerso che non tutto il codice HTML è supportato, e che gli Oggetti, sopra elencati, supportano ciascuno un numero differente di comandi html. Ad ogni modo le non poche istruzioni riconosciute e gestite consentono di ottenere risultati ed effetti molto soddisfacenti soprattutto con le finestre.

Va innanzitutto detto che il codice va posto fra i segni di minore (<) e di maggiore (>): <codice_html>.
Inoltre, riferendosi esso per lo più al testo, il codice va scritto all'interno delle virgolette che racchiudono il testo. Esempio:

TextLabel1.Text = "<codice_HTML>eventuale_testo<altro_eventuale_codice_HTML>altro_eventuale_testo"

L'istruzione viene chiusa anteponendo uno slash: / .
Esempio pratico:

<H3>testo scritto</H3>

Questa regola vale anche se il testo non è presente, o se il codice si riferisce ad altri elementi diversi dal testo in sé, per esempio una immagine.

Tra i segni < > ed il comando html potrà essere presente anche lo spazio:

< B >

eccezion fatta per l'Oggetto WebView che vuole i tag HTML senza spazi all'interno.

Il codice Html utilizzabile

Cliccare sulla riga che segue:

elenco delle istruzioni HTML compatibili

per vedere le istruzioni HTML compatibili con gli oggetti Gambas, sopra visti, che supportano il protocollo HTML. [nota 3]


Uso di variabili del codice Gambas all'interno del codice Html

E' possibile utilizzare delle variabili del codice Gambas all'interno del codice Html.
Vediamo questo esempio dove sarà modificato velocemente nelle sue sfumature il colore e le dimensioni del carattere del testo nella TextLabel:

Public Sub Button1_Click()

 Dim a As String
 Dim j, s As Short

 For j = 0 To 255
   s = j / 31
   a = Hex(j, 2)
   TextLabel1.Text = "<FONT size=" & s & " color=#00" & a & "00><B>Testo qualsiasi</b></font>"
   Wait 0.01
 Next

End


Uso diretto delle Proprietà delle Classi del codice Gambas all'interno del codice Html

E' possibile utilizzare in lettura anche direttamente le Proprietà delle Classi del codice Gambas all'interno del codice Html:

 With GridView1[0, 0]
   .RichText = "<IMG src=/percorso/della/immagine height=" & .W & " width=" & .H & ">"
 End With


Utilizzare il codice Html contenuto in una variabile stringa

Il codice Html può essere contenuto in una variabile stringa, e quindi essere utilizzato passando al codice Gambas quella variabile stringa. Esso sarà perfettamente utilizzabile e funzionante, sia insieme con il testo:

Public Sub Form_Open()

 Dim s As String

' La variabile stringa "s" conterrà la riga di codice Html:
 s = "<FONT color=#FF0000><B>Testo qualsiasi</b></font>"

 Message.Info(s & "<IMG src=/percorso/della/immagine>")

End

che da solo:

Public Sub Form_Open()

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

 s1 = "testo"
 s2 = "<FONT color=#FFFF00>"
 s3 = "</font>"

 TextLabel1.Text = Left(s1, 2) & s2 & Mid(s1, b, 1) & s3 & Right(s1, Len(s1) - (2 + 1))

End

Sarà, inoltre, possibile anche usare una variabile stringa per poter modificare un valore nel codice Html contenuto a sua volta in una variabile stringa:

Public Sub Form_Open()

 Dim a, b As String

 a = InputBox("Immetti il nome di un colore:")

' La variabile stringa "b" conterrà la riga di codice Html, e la variabile stringa "a" ne modifica dinamicante un valore:
 b = "<FONT color=" & a & "><B>Testo qualsiasi</b></font>"

 Message.Info(b)

End

La variabile stringa deve contenere il codice Html definitivo: ogni eventuale variazione dei suoi valori deve avvenire prima.


Uso dei colori

I colori possono essere inseriti generalmente indicando il loro codice esadecimale oppure il loro nome inglese, secondo il protocollo dei colori usati nel WEB.

E' possibile usare anche la trasparenza:

<font color=transparent>testo qualsiasi


Uso dei TAG del protocollo HTML nei Commenti alle righe del codice

I Commenti alle righe del codice, posti nell'editor testuale dell'IDE di Gamabs, supportano alcuni TAG del protocollo HTML, per caratterizzare (anche con oggetti multimediali) il Commento, quando esso apparirà nella consueta finestrina della guida durante la scrittura nel codice l'identificatore della risorsa già commentata in dichiarazione.
Questa possibilità è amessa, purché vengano rispettate le seguenti regole:
1) il Commento deve accompagnare la "dichiarazione" di un identificatore;
2) l'identificatore deve essere composto da almeno 3 caratteri, affinché possa apparire la finestrina della guida;
3) il Commento deve essere posto sulla destra (ossia dopo) della dichiarazione;
4) il Commento può solo accompagnare l'identificatore di Costanti, Variabili Globali, Variabili Locali, Sub-routine (Eventi, Funzioni e Procedure);
5) il Commento deve essere preceduto immediatamente alla sua sinistra tassativamente da almeno 2 singole virgolette (') (dunque NON il carattere delle doppie-virgolette);

Per terminare un oggetto multimediale in esecuzione, sarà sufficiente premere sulla tastiera il tasto "Back Space" (quello che cancella i caratteri a sinistra del cursore).


Creare una nota al testo (ToolTip) in una TextEdit

In un oggetto TextEdit è possibile creare una nota al testo. Tale nota si mostrerà come una finestrina (un ToolTip) al di sotto del testo interessato. Per ottenere l'apparizione della nota al testo, bisognerà sostare con il puntatore del mouse sul testo interessato per qualche secondo.

Per generare una nota al testo (ovvero ToolTip) si potrà utilizzare il tag:

<ABBR Title=\"Testo della nota.\"</abbr>

oppure il tag:

<A HREF='#' Title=\"Testo della nota.\"</a>
ma anche così
<A HREF=' ' Title=\"Testo della nota.\"</a>

Solitamente la parte di testo che rimanda ad una nota al testo è di colore blu e sottolineata. Tale effetto potrà essere ottenuto con

<U><FONT color=blue>testo annotato</font></u>

oppure semplicemente con

<A HREF='#' Title=\"....>

Il testo all'interno della nota viene formattato secondo il protocollo html, supportando così diversi comandi di quel linguaggio. Bisogna, però, ricordare che:

  • affinché il testo della nota al testo sia visibile, esso deve essere posto fra virgolette anticipate dal carattere speciale \ ;
  • possono essere utilizzati al posto dei caratteri anche i relativi codici numerici o nominali;
  • per andare a capo bisognerà porre nel testo il comando <BR> .

Esempi di codice per le note di testo

Testo semplice:

TextEdit1.RichText = "Testo principale <ABBR Title=\"Questa è una nota al testo.\"><U><FONT color=blue>testo annotato</font></u></abbr> segue il testo principale"

oppure

TextEdit1.RichText = "Testo principale <A HREF='#' Title=\"Questa è una nota al testo.\">testo annotato</a> segue il testo principale"

Testo con ritorno a capo:

TextEdit1.RichText = "Testo principale <A HREF='#' Title=\"Questa è una nota<BR> al testo.\">testo annotato</abbr> segue il testo principale"

Una nota può anche essere generata da un'immagine:

TextEdit1.RichText = "<IMG src=/percorso/della/immagine TITLE=\"Questa è una nota al testo.\"></abbr> eventuale testo"

Una nota può anche contenere un'immagine:

TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <IMG src=/percorso/della/immagine></img>una nota al testo.\">testo annotato</a> segue testo principale"

E' possibile impostare il colore del testo contenuto nella nota:

TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=nome_colore>una nota al testo</font>.\">testo annotato</a> segue testo principale"

oppure con il codice numerico del colore:

TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT& color=#numero_esadec._colore>una nota al testo</font>.\">testo annotato</a> segue testo principale"

Nota contenente una parte di testo normale, la parte centrale di un colore diverso ed in grassetto, la parte finale di identico colore, in corsivo e senza grassetto:

TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#numero_esadec._colore><B>una nota </b><I>al testo</i></font>.\">testo annotato</a> segue testo principale"

e così via per gli altri comandi html supportati.

Testo annotato di colore diverso

Come già detto, il testo che rinvia alla nota di testo appare nella TextEdit di norma sottolineato e di colore blu. Se si utilizza il tag: <A Href=\"... è possibile, volendo, cambiare il colore di tale testo annotato nel modo che segue:

 TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"testo della nota\"><FONT color=nome/#num._colore>testo annotato</font></a> segue testo principale"

Uso di variabili stringa nelle note di testo

Anche per il codice relativo alle note è possibile utilizzare variabili stringa contenenti parti di codice html:

Public Sub Form_Open()

 Dim s As String

 s = "<FONT color=nome_colore/#num_esad._colore>"

 TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è " & s & "una nota al testo.\">testo_annotato</a> segue testo principale"

End


L'oggetto WebView

Specificamente dedicato alla gestione del codice html è l'oggetto WebView, che può essere utilizzato attivando il Componente gb.gui.qt.webkit o il Componente gb.qt5.webkit.

L'uso del codice html potrà essere effettuato in particolare mediante le proprietà:

  • .HTML che ritorna il codice html mostrato nella pagina web, oppure imposta quello da usare con l'oggetto WebView;
  • .Url che ritorna l'URL mostrato nella pagina web, oppure imposta l'URL della pagina web che dovrà essere mostrata nell'oggetto WebView.

Per impostare l'oggetto WebView, mentre la proprietà .HTML richiede che si debba riportare nella sua stringa tutto il codice html, la proprietà .Url, invece, si servirà del codice html presente in un'altra pagina web per impostare l'oggetto WebView.

L'oggetto WebView supporta una quantità molto superiore di comandi (sopra non riportati) propri del protocollo HTML rispetto agli altri oggetti, all'inizio di questa pagina elencati.

Il Metodo ".SetHtml()"

Il Metodo ".SetHtml()" del Controllo WebView supporta una stringa formata dal codice HTML di una pagina web che si vuole mostrare nel WebView.

Public Sub Form_Open()

 WebView1.SetHtml("<HTML><BODY>Questo è un collegamento al " &
 "<A HREF='http://www.gambas-it.org/smf/index.php'>Forum della Comunità italiana dei programmatori di Gambas." &
 "</a></body></html>")

End



Note

[1] Per l'uso di TextEdit e per le celle dell'Oggetto GridView in Gambas si dovrà avere l'accortezza di usare la Proprietà ".RichText".
Esempio:

TextEdit1.RichText = "<FONT color=green><B>prova testo</b></font>"

[2] Il Metodo ".RichText()" deve essere seguito dal Metodo ".Fill()";

[3] Va comunque considerato che a tal riguardo B. Minisini ha affermato che:
«Gambas Rich Text non è un "Rich-text". Supporta solo ciò che è specificato nel wiki. Il fatto che Qt supporti di più non dovrebbe essere preso in considerazione. Può scomparire senza preavviso! Per i casi complessi è meglio utilizzare il controllo HtmlView di 'gb.form.htmlview'.»