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

Da Gambas-it.org - Wikipedia.
Versione del 30 mag 2013 alle 07:25 di Vuott (Discussione | contributi) (Creata pagina con 'Il caso in questione prevede di avere una immagine che fa da sfondo ad un testo in una ''TextEdit'' ed in una ''TextLabel'', evitando però di integrare il testo nell'immagine...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il caso in questione prevede di avere una immagine che fa da sfondo ad un testo in una TextEdit ed in una TextLabel, evitando però di integrare il testo nell'immagine (creando così insomma una nuova immagine) da mostrare successivamente, e mantenendo invece testo ed immagine come elementi ben distinti.

Poiché, però, la TextEdit e la TextLabel non possiedono una sorta di proprietà .Picture, capace di caricare direttamente le immagini, ci serviremo strategicamente, in alternativa, per la TextEdit della proprietà .RichText, e per la TextLabel della proprietà .Text, utilizzando al loro iterno il codice HTML. In particolare, ci serviremo del tag <TABLE>, ossia creeremo una tabella, sfruttando così la capacità della sua proprietà background= per caricare l'immagine.

Facciamo un esempio pratico con una TextEdit:

Public Sub Form_Open()

' Dichiariamo una variabile di tipo "Picture"...
 Dim p As New Picture

' ...con la quale carichiamo l'immagine, che farà da sfondo; 
   ' ma la carichiamo qui solo per ottenere successivamente le sue dimensioni:
      p = p.Load("immagine_che_sarà_caricata_poi_come_sfondo")

' Per caricare l'immagine effettivamente in una "TextEdit", bisogna crearvi  
' una "Tabella" con gli appositi tag HTML .  
' Si sfrutterà, così, la capacità della <TABLE> di caricare le immagini.  
' Impostiamo le dimensioni della tabella in base alle dimensioni  
' della immagine precedentemente caricata nella variabile di tipo "Picture".  
' Con la proprietà "background=" della Tabella carichiamo effettivamente  
' l'immagine nella predetta Tabella creata e dimensionata:  
    TextEdit1.RichText = "<TABLE width=" & p.W & " height=" & p.H & " background=immagine_da_caricare_come_sfondo>" &  
    "<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.