Differenze tra le versioni di "Oggetti grafici e di testo che supportano il codice HTML"

Da Gambas-it.org - Wikipedia.
Riga 228: Riga 228:
 
   "<A HREF='http://www.gambas-it.org/smf/index.php'>Forum della Comunità italiana dei programmatori di Gambas."
 
   "<A HREF='http://www.gambas-it.org/smf/index.php'>Forum della Comunità italiana dei programmatori di Gambas."
 
   "</a></body></html>"
 
   "</a></body></html>"
 +
 +
'''End'''
 +
 +
===Il Metodo ".SetHtml()"===
 +
Se si usano il Componenti grafici gb.gtk3 e gb.gtk3.webkit, allora si dovrà utilizzare il Metodo ".SetHtml()":
 +
'''Public''' Sub Form_Open()
 +
 +
  WebView1.<FONT color=#B22222>SetHtml</font>("<HTML><BODY>Questo è un collegamento al " &
 +
  "&lt;A HREF='&#104;ttp://www.gambas-it.org/smf/index.php'>Forum della Comunità italiana dei programmatori di Gambas."
 +
  "</a></body></html>")
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 241: Riga 251:
 
  '''End'''
 
  '''End'''
 
In questo caso l'oggetto ''WebView'' mostrerà la pagina web, come composta ed impostata dal codice ''html'' in essa contenuto.
 
In questo caso l'oggetto ''WebView'' mostrerà la pagina web, come composta ed impostata dal codice ''html'' in essa contenuto.
 
  
  

Versione delle 06:11, 28 ago 2021

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

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


Supportano il codice html anche:

  • la proprietà .Tooltip di qualunque oggetto;
  • i metodi:

     - .DrawRichText e .RichText [Nota 2] della Classe Paint;
     - .RichText della Classe Draw;

  • in generale la proprietà .RichText di qualsiasi oggetto (qualora posseduta);
  • l'oggetto WebView del Componente gb.gui.qt.webkit o del Componente gb.qt5.webkit.


Risultati ottimali si otterranno attivando il componente gb.gui.qt o gb.qt5.


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 4.

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 maggiore di e minore di: <codice_html>. Inoltre, riferendosi esso per lo più al testo, 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 antecedendo 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.


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

E' possibile utilizzare delle variabili del codice Gambas all'interno del codice Html:

Public Sub Form_Open()

 Dim s, al, lu As String

  s = InputBox("Immetti il nome di un colore:")
  al = InputBox("Immetti la dimensione dell'Altezza dell'immagine:")
  lu = InputBox("Immetti la dimensione della Lunghezza dell'immagine:")


  Message.Info("<IMG src=/percorso/della/immagine height=" & al & " width=" & lu & "><FONT color=" & s & "><B>testo")

End


Vediamo quest'altro 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 a As String

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

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

End

che da solo:

Public Sub Form_Open()

 Dim j 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, j, 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


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.

La proprietà .HTML

La proprietà .HTML dell'oggetto WebView supporta una stringa formata dal codice HTML di una pagina web che si vuole mostrare nell'oggetto medesimo. [Nota 3] [Nota 4]

Esempio:

Public Sub Form_Open()

  WebView1.Html = "<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

Il Metodo ".SetHtml()"

Se si usano il Componenti grafici gb.gtk3 e gb.gtk3.webkit, allora si dovrà utilizzare il Metodo ".SetHtml()":

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

La proprietà .Url

La proprietà .Url consente di richiamare e mostrare nell'oggetto WebView una pagina web, esterna o contenuta nel programma.

Facciamo l'esempio di una pagina web, salvata in un file html, contenuto nella cartella Dati del progetto:

Public Sub Form_Open()

  WebView1.Url = "mia_pagina_web.html"

End

In questo caso l'oggetto WebView mostrerà la pagina web, come composta ed impostata dal codice html in essa contenuto.



Note

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

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

[2] Il metodo .RichText deve essere seguito dal metodo .Fill;

[3] La proprietà .Html non supporta tutto il codice HTML. In tal caso, ma anche quando essa non supporta altri linguaggi come il CSS o il JavaScript, è necessario scrivere tale codice in un file Html, e richiamarlo poi con la proprietà .Url .

[4] La proprietà .Html non va confusa con la proprietà .Text, la quale ultima, invece, restituisce il testo senza impostazione del codice HTML.