Immagine di sfondo al testo in una TextEdit ed in una TextLabel
Il caso è quello in cui si vuole ottenere una immagine che fa da sfondo ad un testo in una "TextEdit" o in una "TextLabel", evitando però che il testo sia integrato nell'immagine medesima in un nuovo file immagine, mantenendo così testo e immagine sostanzialmente come elementi ben distinti fra loro.
Poiché, però, la TextEdit e la TextLabel non possiedono Proprietà specifiche per caricare direttamente le immagini, ci serviremo, in alternativa, per la TextEdit della Proprietà ".RichText", e per la TextLabel della Proprietà ".Text", utilizzando al loro interno il codice HTML.
In particolare, ci serviremo del tag <TABLE>, creando così una tabella per sfruttare così la capacità della sua proprietà "background" di caricare le immagini.
Facciamo un esempio pratico con una TextEdit :
Public Sub Form_Open() Dim prc As String ' Imposta il percorso del file immagine da caricare e che farà da sfondo al testo: prc = "/percorso/del/file/immagine" ' Per caricare l'immagine effettivamente in una "TextEdit", bisogna crearvi una "Tabella" con gli appositi tag HTML . ' Si sfrutterà, a tal fine, la capacità della <TABLE> di caricare le immagini. ' Imposta le dimensioni della tabella in base alle dimensioni della immagineda mostrare come sfondo al testo. ' Quindi con la proprietà "background" della Tabella carica effettivamente l'immagine nella predetta Tabella creata e dimensionata: TextEdit1.RichText = "<TABLE width=" & ImageStat(prc).Width & " height=" & ImageStat(prc).Height & " background=" & prc & "><TR><TD align=justify>Questo è il testo che starà al di sopra dell'immagine</td></tr></table>" End
L'intero testo, che sarà contenuto nella TextEdit, o nella TextLabel, affinché possa stare tutto al di sopra dell'immagine caricata, dovrà continuare ad essere gestito all'interno della cella (nel tag <TD> ) della Tabella. Quindi anche eventuali cambiamenti delle sue proprietà (colore, stile, etc) dovranno essere gestiti secondo il protocollo HTML. [Nota 1]
Così ad esempio, se si vuole anche colorare di rosso il testo (oltre ad assegnargli un allineamento "giustificato"), l'ultima riga diventerà:
TextEdit1.RichText = "<TABLE width=" & ImageStat(prc).Width & " height=" & ImageStat(prc).Height & " background=" & prc & "><TR><TD align=justify style=color:red>Questo è il testo che starà al di sopra dell'immagine</td></tr></table>"
Note
[1] Riguardo ai "TAG" del protocollo HTML compatibili con gli Oggetti grafici di Gambas, vedere questa pagina: Elenco delle istruzioni HTML compatibili