Spostare il testo con il mouse all'interno dell'area grafica con la Classe Cairo
Per poter sfruttare le risorse di Cairo in Gambas, bisognerà attivare anche il componente gb.cairo, ed operare quindi con le funzioni e le proprietà messe a disposizione della Classe non creabile denominata: Cairo.
La Classe Cairo consente in generale di disegnare su un oggetto di tipo Image, che si avrà cura di passare al metodo .Begin() prima di chiamare le funzioni di disegno previste dalla Classe.
Riguardo al caso previsto da questa pagina, faremo un esempio di possibile codice, nel quale passeremo al metodo .Begin() un'immagine vuota e trasparente, caricata come oggetto Image, sulla quale faremo apparire un testo, mediante la funzione .DrawText() alle coordinate stabilite dal metodo .LineTo(). I dati Image vengono, quindi, convertiti in una Picture e mostrati così in una PictureBox:
Private i As New Image Private i2 As New Image Public Sub Form_Open() i = i.Load("file_immagine_trasparente") i2 = i.Copy(0, 0, i.W, i.H) End Public Sub PictureBox1_MouseDown() ' Mettiamo a disposizione nuovamente un oggetto immagine completamente vuoto: i = i2.Copy(0, 0, i2.W, i2.H) With Cairo .Begin(i) .LineTo(Mouse.X, Mouse.Y) .DrawText("Testo qualsiasi") .Fill .End End With ' Convertiamo i dati "Image" del risultato in una "Picture", che mostreremo in una "PictureBox": PictureBox1.Picture = i.Picture End Public Sub PictureBox1_MouseMove() ' Gestisce l'evento dello spostamento del mouse sull'area grafica: ' Mettiamo a disposizione nuovamente un oggetto immagine completamente vuoto: i = i2.Copy(0, 0, i2.W, i2.H) With Cairo .Begin(i) .LineTo(Mouse.X, Mouse.Y) .DrawText("Testo qualsiasi") .Fill .End End With ' Convertiamo i dati "Image" del risultato in una "Picture" che mostreremo in una "PictureBox": PictureBox1.Picture = i.Picture End