Creare e distruggere un Controllo grafico in una DrawingArea
Da Gambas-it.org - Wikipedia.
Versione del 7 giu 2023 alle 05:03 di Vuott (Discussione | contributi) (Creata pagina con "Essendo la ''DrawingArea'' un ''Container'' (''Contenitore'' di Oggetti grafici), risulta semplice creare al suo interno un ''Controllo'' grafico. <BR>Per ottenere ciò, il ''...")
Essendo la DrawingArea un Container (Contenitore di Oggetti grafici), risulta semplice creare al suo interno un Controllo grafico.
Per ottenere ciò, il Controllo grafico dovrà essere creato come Oggetto "Figlio" della DrawingArea. [nota 1]
Mostriamo un semplice codice per creare e per distruggere con il mouse una o più Label.
Private DrawingArea1 As DrawingArea Private lb As Label Private i As Integer Public Sub _new() With Me .W = Screen.AvailableWidth .H = Screen.AvailableHeight .Arrangement = Arrange.Fill End With With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" .Background = Color.White End With End Public Sub DrawingArea1_MouseDown() ' Se non si è cliccato con il tasto sinistro del mouse, si esce dalla routine: If Not Mouse.Left Then Return Inc i ' Genera e imposta una "Label", assegnadola come "figlia" alla "DrawingArea": With lb = New Label(DrawingArea1) As "Etichetta" .X = Mouse.X .Background = Color.SoftOrange .Border = Border.Raised .Text = " Label " & CStr(i) End With End Public Sub DrawingArea1_MouseUp() ' Se non si è cliccato con il tasto sinistro del mouse, si esce dalla routine: If Not Mouse.Left Then Return DrawingArea1.Mouse = Mouse.Default With lb .W = .Font.TextWidth(.Text) + 5 .H = .Font.TextHeight(.Text) .Y = Mouse.Y - .H End With End Public Sub Etichetta_MouseDown() ' Se si clicca con il tasto destro del mouse, la "Label" puntata viene distrutta If Mouse.Right Then Last.Delete End Public Sub Etichetta_MouseUp() Last.Mouse = Mouse.Default End
Note
[1] Si veda anche questa pagina: Spostare con il mouse un Controllo grafico generato in una DrawingArea.