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

Da Gambas-it.org - Wikipedia.
 
(13 versioni intermedie di uno stesso utente non sono mostrate)
Riga 11: Riga 11:
 
Supportano il codice html anche:
 
Supportano il codice html anche:
 
* la proprietà <FONT color=#B22222>''.Tooltip''</font> di qualunque oggetto;
 
* la proprietà <FONT color=#B22222>''.Tooltip''</font> di qualunque oggetto;
* i metodi:
+
* i metodi <FONT color=#B22222>.DrawRichText()</font> e <FONT color=#B22222>.RichText()</font> <SUP>&#91;[[#Note|nota 2]]&#93;</sup> della Classe ''Paint'' ;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'''-''' <FONT color=#B22222>.DrawRichText</font> e <FONT color=#B22222>.RichText</font> <SUP>&#91;[[#Note|Nota 2]]&#93;</sup> della Classe ''Paint'';
+
* in generale la Proprietà <FONT color=#B22222>.RichText</font> di qualsiasi oggetto grafico (qualora posseduta);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'''-''' <FONT color=#B22222>.RichText</font> della Classe ''Draw'';
+
* l'oggetto <FONT color=#B22222>WebView</font> dei Componenti ''gb.gui.qt.webkit'' e ''gb.qt5.webkit''.
* in generale la proprietà <FONT color=#B22222>.RichText</font> di qualsiasi oggetto (qualora posseduta);
 
* l'oggetto <FONT color=#B22222>WebView</font> del Componente ''gb.gui.qt.webkit'' o del Componente ''gb.qt5.webkit.
 
  
 +
<SPAN Style="text-decoration:underline">Risultati ottimali si otterranno attivando il Componente '''gb.gui.qt''' o il Componente '''gb.qt5'''</span>. <SUP>&#91;[[#Note|'''nota 3''']]&#93;</sup>
  
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 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.
  
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.
+
Va innanzitutto detto che il codice va posto fra i segni di ''minore'' ('''<''') e di ''maggiore'' ('''>'''): '''<'''''codice_html'''''>'''.
 
+
<BR>Inoltre, riferendosi esso per lo più al testo, il codice va scritto all'interno delle virgolette che racchiudono il testo. Esempio:
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 = <FONT size=4><B>"</b></font><FONT color=#B22222>'''<'''''codice_HTML'''>'''</font>eventuale_testo''<FONT color=#B22222>'''<'''''altro_eventuale_codice_HTML'''''>'''</font>''altro_eventuale_testo''<FONT size=4><B>"</b></font>
 
  TextLabel1.Text = <FONT size=4><B>"</b></font><FONT color=#B22222>'''<'''''codice_HTML'''>'''</font>eventuale_testo''<FONT color=#B22222>'''<'''''altro_eventuale_codice_HTML'''''>'''</font>''altro_eventuale_testo''<FONT size=4><B>"</b></font>
  
L'istruzione viene chiusa antecedendo uno ''slash'': <FONT color=#B22222><B>/</b></font> .
+
L'istruzione viene chiusa anteponendo uno ''slash'': <FONT color=#B22222><B>/</b></font> .
 
<BR>Esempio pratico:
 
<BR>Esempio pratico:
 
  <FONT color=#B22222>&#060;H3&#062;</font>testo scritto<FONT color=#B22222>&#060;'''/'''H3&#062;</font>
 
  <FONT color=#B22222>&#060;H3&#062;</font>testo scritto<FONT color=#B22222>&#060;'''/'''H3&#062;</font>
Riga 36: Riga 33:
 
Tra i segni '''<''' '''>''' ed il comando html potrà essere presente anche lo spazio:
 
Tra i segni '''<''' '''>''' ed il comando html potrà essere presente anche lo spazio:
 
  <FONT color=#B22222>< B ></font>
 
  <FONT color=#B22222>< B ></font>
eccezion fatta per l'oggetto ''WebView'' che vuole i tag HTML <SPAN style="text-decoration:underline">senza</span> spazi all'interno.
+
eccezion fatta per l'Oggetto ''WebView'' che vuole i tag HTML <SPAN style="text-decoration:underline">senza</span> spazi all'interno.
 
 
 
 
 
 
 
==Il codice Html utilizzabile==
 
==Il codice Html utilizzabile==
 
Cliccare sulla riga che segue:
 
Cliccare sulla riga che segue:
  <B>[[elenco_delle_istruzioni_HTML_compatibili|elenco delle istruzioni HTML compatibili]]</b>
+
  <FONT Size=4><B>[[elenco_delle_istruzioni_HTML_compatibili|elenco delle istruzioni HTML compatibili]]</b></font>
per vedere le istruzioni HTML compatibili con gli oggetti Gambas, sopra visti, che supportano il protocollo HTML.
+
per vedere le istruzioni HTML compatibili con gli oggetti Gambas, sopra visti, che supportano il protocollo HTML. <SUP>&#91;[[#Note|nota 3]]&#93;</sup>
 
 
  
  
 
==Uso di variabili del codice Gambas all'interno del codice Html==
 
==Uso di variabili del codice Gambas all'interno del codice Html==
E' possibile utilizzare delle variabili del codice [[GAMBAS|Gambas]] all'interno del codice Html:
+
E' possibile utilizzare delle variabili del codice Gambas all'interno del codice Html.
'''Public''' Sub Form_Open()
+
<BR>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 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("&#060;IMG src=<FONT color=gray>''/percorso/della/immagine''</font> height=" & <FONT color=#B22222>al</font> & " width=" & <FONT color=#B22222>lu</font> & ">&#060;FONT color=" & <FONT color=#B22222>s</font> & ">&#060;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 a As String
 
   Dim j, s As Short
 
   Dim j, s As Short
 
   
 
   
  For j = 0 To 255
+
  For j = 0 To 255
    s = j / 31
+
    s = j / 31
    a = Hex(j, 2)
+
    a = Hex(j, 2)
    TextLabel1.Text = "&#060;FONT size=" & <FONT color=#B22222>s</font> & " color=#00" & <FONT color=#B22222>a</font> & "00>&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
+
    TextLabel1.Text = "&#060;FONT size=" & <FONT color=#B22222>s</font> & " color=#00" & <FONT color=#B22222>a</font> & "00>&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
    Wait 0.01
+
    Wait 0.01
  Next
+
  Next
 
   
 
   
  '''End'''
+
  End
  
  
 
+
==Uso diretto delle ''Proprietà'' delle Classi del codice Gambas all'interno del codice Html==
==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|Gambas]] all'interno del codice Html:
E' possibile utilizzare in ''lettura'' anche direttamente le ''proprietà'' delle Classi del codice [[GAMBAS|Gambas]] all'interno del codice Html:
+
  With GridView1[0, 0]
  With GridView1[0, 0]
+
    .RichText = "&#060;IMG src=''<FONT color=gray>/percorso/della/immagine''</font> height=" & .W & " width=" & .H & ">"
    .RichText = "&#060;IMG src=''<FONT color=gray>/percorso/della/immagine''</font> height=" & .W & " width=" & .H & ">"
+
  End With
  End With
 
 
 
  
  
 
==Utilizzare il codice Html contenuto in una variabile stringa==
 
==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|Gambas]] quella variabile stringa. Esso sarà perfettamente utilizzabile e funzionante, sia insieme con il testo:
 
Il codice Html può essere contenuto in una variabile stringa, e quindi essere utilizzato passando al codice [[GAMBAS|Gambas]] quella variabile stringa. Esso sarà perfettamente utilizzabile e funzionante, sia insieme con il testo:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
   Dim a As String
+
   Dim s As String
 
   
 
   
  <FONT color=gray>' ''La variabile stringa "a" conterrà la riga di codice Html:''</font>
+
  <FONT color=gray>' ''La variabile stringa "s" conterrà la riga di codice Html:''</font>
  a = "&#060;FONT color=#FF0000>&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
+
  s = "&#060;FONT color=#FF0000>&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
 
   
 
   
  Message.Info(<FONT color=#B22222>a</font> & "<IMG src=''<FONT color=gray>/percorso/della/immagine''</font>>")
+
  Message.Info(<FONT color=#B22222>s</font> & "<IMG src=<FONT color=gray>''/percorso/della/immagine''</font>>")
 
   
 
   
  '''End'''
+
  End
 
 
 
che da solo:
 
che da solo:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
   Dim j As Byte = 3
+
   Dim b As Byte = 3
 
   Dim s1, s2, s3 As String
 
   Dim s1, s2, s3 As String
 
   
 
   
  s1 = "testo"
+
  s1 = "testo"
  s2 = "&lt;FONT color=#FFFF00>"
+
  s2 = "&lt;FONT color=#FFFF00>"
  s3 = "&lt;/font>"
+
  s3 = "&lt;/font>"
 
   
 
   
  TextLabel1.Text = Left(s1, 2) & s2 & Mid(s1, j, 1) & s3 & Right(s1, Len(s1) - (2 + 1))
+
  TextLabel1.Text = Left(s1, 2) & s2 & Mid(s1, b, 1) & s3 & Right(s1, Len(s1) - (2 + 1))
 
   
 
   
  '''End'''
+
  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:
 
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()
+
  Public Sub Form_Open()
 
   
 
   
 
   Dim a, b As String
 
   Dim a, b As String
 
   
 
   
  a = InputBox("Immetti il nome di un colore:")
+
  a = InputBox("Immetti il nome di un colore:")
 
   
 
   
  <FONT color=gray>' ''La variabile stringa "b" conterrà la riga di codice Html,''
+
  <FONT color=gray>' ''La variabile stringa "b" conterrà la riga di codice Html, e la variabile stringa "a" ne modifica dinamicante un valore:''</font>
' ''e la variabile stringa "a" ne modifica dinamicante un valore:''</font>
+
  b = "&#060;FONT color=" & <FONT color=#B22222>a</font> & ">&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
  b = "&#060;FONT color=" & <FONT color=#B22222>a</font> & ">&#060;B>Testo qualsiasi&#060;/b>&#060;/font>"
 
 
   
 
   
  Message.Info(<FONT color=#B22222>b</font>)
+
  Message.Info(<FONT color=#B22222>b</font>)
 
   
 
   
  '''End'''
+
  End
 
La variabile stringa deve contenere il codice Html definitivo: ogni eventuale variazione dei suoi valori deve avvenire prima.
 
La variabile stringa deve contenere il codice Html definitivo: ogni eventuale variazione dei suoi valori deve avvenire prima.
 
  
  
Riga 139: Riga 111:
 
E' possibile usare anche la trasparenza:
 
E' possibile usare anche la trasparenza:
 
  &#060;font color='''transparent'''&#062;testo qualsiasi
 
  &#060;font color='''transparent'''&#062;testo qualsiasi
 
  
  
Riga 151: Riga 122:
 
  ma anche così
 
  ma anche così
 
  <FONT color=#B22222>'''&lt;A HREF=' ' Title=\"'''</font>Testo della nota.<FONT color=#B22222>'''\"&lt;/a>'''</font>
 
  <FONT color=#B22222>'''&lt;A HREF=' ' Title=\"'''</font>Testo della nota.<FONT color=#B22222>'''\"&lt;/a>'''</font>
 
 
Solitamente la parte di testo che rimanda ad una ''nota al testo'' è di colore blu e sottolineata. Tale effetto potrà essere ottenuto con
 
Solitamente la parte di testo che rimanda ad una ''nota al testo'' è di colore blu e sottolineata. Tale effetto potrà essere ottenuto con
 
  &lt;U>&lt;FONT color=blue>testo annotato&lt;/font>&lt;/u>
 
  &lt;U>&lt;FONT color=blue>testo annotato&lt;/font>&lt;/u>
 
oppure semplicemente con
 
oppure semplicemente con
 
  &lt;A HREF='#' Title=\"....>
 
  &lt;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:
 
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 <FONT color=#B22222>'''\'''</font> ;
 
* affinché il testo della ''nota al testo'' sia visibile, esso deve essere posto fra virgolette anticipate dal carattere speciale <FONT color=#B22222>'''\'''</font> ;
Riga 166: Riga 135:
 
Testo semplice:
 
Testo semplice:
 
  TextEdit1.RichText = "Testo principale &lt;ABBR Title=\"Questa è una nota al testo.\">&lt;U>&lt;FONT color=blue>testo annotato&lt;/font>&lt;/u>&lt;/abbr> segue il testo principale"
 
  TextEdit1.RichText = "Testo principale &lt;ABBR Title=\"Questa è una nota al testo.\">&lt;U>&lt;FONT color=blue>testo annotato&lt;/font>&lt;/u>&lt;/abbr> segue il testo principale"
+
oppure
oppure
 
 
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' Title=\"Questa è una nota al testo.\">testo annotato&lt;/a> segue il testo principale"
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' Title=\"Questa è una nota al testo.\">testo annotato&lt;/a> segue il testo principale"
 
 
Testo con ''ritorno a capo'':
 
Testo con ''ritorno a capo'':
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' Title=\"Questa è una nota<FONT color=#B22222>&lt;BR></font> al testo.\">testo annotato</abbr> segue il testo principale"
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' Title=\"Questa è una nota<FONT color=#B22222>&lt;BR></font> al testo.\">testo annotato</abbr> segue il testo principale"
 
 
Una ''nota'' può anche essere generata da un'immagine:
 
Una ''nota'' può anche essere generata da un'immagine:
 
  TextEdit1.RichText = "&lt;IMG src=''<FONT color=gray>/percorso/della/immagine</font>'' TITLE=\"Questa è una nota al testo.\">&lt;/abbr> eventuale testo"
 
  TextEdit1.RichText = "&lt;IMG src=''<FONT color=gray>/percorso/della/immagine</font>'' TITLE=\"Questa è una nota al testo.\">&lt;/abbr> eventuale testo"
 
 
Una nota può anche contenere un'immagine:
 
Una nota può anche contenere un'immagine:
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;IMG src=''<FONT color=gray>/percorso/della/immagine</font>''>&lt;/img></font>una nota al testo.\">testo annotato</a> segue testo principale"
 
  TextEdit1.RichText = "Testo principale &lt;A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;IMG src=''<FONT color=gray>/percorso/della/immagine</font>''>&lt;/img></font>una nota al testo.\">testo annotato</a> segue testo principale"
 
 
E' possibile impostare il colore del testo contenuto nella ''nota'':
 
E' possibile impostare il colore del testo contenuto nella ''nota'':
 
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;FONT color=''nome_colore''></font>una nota al testo&lt;/font>.\">testo annotato&lt;/a> segue testo principale"
 
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;FONT color=''nome_colore''></font>una nota al testo&lt;/font>.\">testo annotato&lt;/a> segue testo principale"
+
oppure con il codice numerico del colore:
oppure con il codice numerico del colore:
 
 
 
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;FONT& color=#''numero_esadec._colore''&gt;</font>una nota al testo&lt;/font>.\">testo annotato</a> segue testo principale"
 
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;FONT& color=#''numero_esadec._colore''&gt;</font>una nota al testo&lt;/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:
 
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=#B22222>&lt;FONT color=#''numero_esadec._colore''&gt;&lt;B></font>una nota <FONT color=#B22222>&lt;/b>&lt;I></font>al testo<FONT color=#B22222>&lt;/i>&lt;/font></font>.\">testo annotato</a> segue testo principale"
 
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è <FONT color=#B22222>&lt;FONT color=#''numero_esadec._colore''&gt;&lt;B></font>una nota <FONT color=#B22222>&lt;/b>&lt;I></font>al testo<FONT color=#B22222>&lt;/i>&lt;/font></font>.\">testo annotato</a> segue testo principale"
Riga 197: Riga 157:
 
===Uso di variabili stringa nelle ''note di testo''===
 
===Uso di variabili stringa nelle ''note di testo''===
 
Anche per il codice relativo alle ''note'' è possibile utilizzare variabili stringa contenenti parti di codice html:
 
Anche per il codice relativo alle ''note'' è possibile utilizzare variabili stringa contenenti parti di codice html:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   Dim s As String
 
   Dim s As String
 
   
 
   
  s = "&lt;FONT color=''nome_colore/#num_esad._colore''&gt;"
+
  s = "&lt;FONT color=''nome_colore/#num_esad._colore''&gt;"
 
   
 
   
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è " & <FONT color=#B22222>s</font> & "una nota al testo.\">testo_annotato</a> segue testo principale"
+
  TextEdit1.RichText = "Testo principale <A HREF='#' TITLE=\"Questa è " & <FONT color=#B22222>s</font> & "una nota al testo.\">testo_annotato</a> segue testo principale"
 
   
 
   
  '''End'''
+
  End
  
  
 
=L'oggetto ''WebView''=
 
=L'oggetto ''WebView''=
Specificamente dedicato alla gestione del codice ''html'' è l'oggetto <FONT color=#B22222>'''WebView'''</font>, che può essere utilizzato attivando il componente ''gb.qt4.webkit''.
+
Specificamente dedicato alla gestione del codice ''html'' è l'oggetto <FONT color=#B22222>'''WebView'''</font>, 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à:
 
L'uso del codice ''html'' potrà essere effettuato in particolare mediante le proprietà:
Riga 220: Riga 180:
  
 
===La proprietà ''.HTML''===
 
===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. <SUP>&#91;[[#Note|Nota 3]]&#93;</sup>  <SUP>&#91;[[#Note|Nota 4]]&#93;</sup>
+
La proprietà ''.HTML'' dell'oggetto ''WebView'' supporta una stringa formata dal codice HTML di una pagina web che si vuole mostrare nell'oggetto medesimo. <SUP>&#91;[[#Note|nota 4]]&#93;</sup>  <SUP>&#91;[[#Note|nota 5]]&#93;</sup>
  
 
Esempio:
 
Esempio:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.<FONT color=#B22222>Html</font> = "<HTML><BODY>Questo è un collegamento al " &
+
  WebView1.<FONT color=#B22222>Html</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."
+
  "&lt;A HREF='&#104;ttp://www.gambas-it.org/smf/index.php'>Forum della Comunità italiana dei programmatori di Gambas." &
  "</a></body></html>"
+
  "</a></body></html>"
 
   
 
   
  '''End'''
+
  End
  
===La proprietà ''.Url''===
+
===Il Metodo ".SetHtml()"===
La proprietà ''.Url'' consente di richiamare e mostrare nell'oggetto ''WebView'' una pagina web, esterna o contenuta nel programma.
+
Se si usa il Componente grafico "gb.qt5.webview" oppure "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
 +
 
 +
===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:
 
Facciamo l'esempio di una pagina web, salvata in un file ''html'', contenuto nella cartella ''Dati'' del progetto:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.<FONT color=#B22222>Url</font> = "''mia_pagina_web.html''"
+
  WebView1.<FONT color=#B22222>Url</font> = "<FONT color=gray>''indirizzo_pagina_web.html''</font>"
 
   
 
   
  '''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.
 
  
  
Riga 247: Riga 216:
 
----
 
----
 
=Note=
 
=Note=
[1] Per l'uso di "''TextEdit''" e per le ''celle'' dell'oggetto ''GridView'' in [[GAMBAS|Gambas]]-3 si dovrà avere l'accortezza di usare '''''.RichText'''''. Esempio: ''TextEdit1.RichText = "&#060;FONT color=green&#062;&#060;B&#062;prova testo&#060;/b&#062;&#060;/font&#062;" .
+
[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'''".
 +
<BR>Esempio:
 +
TextEdit1.RichText = "&#060;FONT color=green&#062;&#060;B&#062;prova testo&#060;/b&#062;&#060;/font&#062;"
 +
 
 +
[2] Il Metodo ".RichText()" deve essere seguito dal Metodo ".Fill()";
  
[2] Il metodo ''.RichText'' deve essere seguito dal metodo ''.Fill'';
+
[3] Va comunque considerato che a tal riguardo B. Minisini ha affermato che:
 +
<BR>«Gambas Rich Text non è un "Rich-text". Supporta solo ciò che è [https://gambaswiki.org/wiki/doc/richtext?l=it 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'.»
  
[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 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.
+
[5] La Proprietà ".Html" non va confusa con la Proprietà ".Text", la quale ultima, invece, restituisce il testo senza impostazione del codice HTML.

Versione attuale delle 08:55, 23 ott 2023

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 ;
  • in generale la Proprietà .RichText di qualsiasi oggetto grafico (qualora posseduta);
  • l'oggetto WebView dei Componenti gb.gui.qt.webkit e gb.qt5.webkit.

Risultati ottimali si otterranno attivando il Componente gb.gui.qt o il Componente gb.qt5. [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


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 4] [nota 5]

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 usa il Componente grafico "gb.qt5.webview" oppure "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 = "indirizzo_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 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'.»

[4] 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" .

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