Immagine di sfondo al testo in una TextEdit ed in una TextLabel

Da Gambas-it.org - Wikipedia.

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