Differenze tra le versioni di "Spostare con il mouse un Controllo grafico generato in una DrawingArea"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Il codice necessario per creare e per spostare all'interno di una ''DrawingArea'' un proprio Oggetto grafico "''figlio''" è abbastanza semplice. <SUP>[[[#Note|nota 1]]&#...") |
|||
Riga 1: | Riga 1: | ||
− | Il codice | + | Il seguente codice ci consente di creare e di spostare all'interno di una ''DrawingArea'' un proprio Oggetto grafico ''Figlio''. <SUP>[[[#Note|nota 1]]]</sup> |
Private DrawingArea1 As DrawingArea | Private DrawingArea1 As DrawingArea | ||
Private lb As Label | Private lb As Label | ||
Riga 65: | Riga 65: | ||
Public Sub Etichetta_MouseDown() | Public Sub Etichetta_MouseDown() | ||
− | + | spx = Mouse.X | |
− | + | spy = Mouse.Y | |
− | |||
− | |||
− | |||
− | |||
− | |||
End | End | ||
Riga 94: | Riga 89: | ||
=Note= | =Note= | ||
− | [1] | + | [1] Vedere anche le seguenti pagine: |
+ | * [[Spostare oggetti con il mouse all'interno di un contenitore senza Drag & Drop]]. | ||
+ | * [[Creare e distruggere un Controllo grafico in una DrawingArea]] |
Versione delle 06:38, 7 giu 2023
Il seguente codice ci consente di creare e di spostare all'interno di una DrawingArea un proprio Oggetto grafico Figlio. [nota 1]
Private DrawingArea1 As DrawingArea Private lb As Label Private i As Integer Private spx As Short Private spy As Short 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_MouseMove() ' Se non si è cliccato con il tasto sinistro del mouse, si esce dalla routine: If Not Mouse.Left Then Return DrawingArea1.Mouse = 18 lb.X = Mouse.X lb.Y = Mouse.Y 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() spx = Mouse.X spy = Mouse.Y End Public Sub Etichetta_MouseMove() Last.Mouse = 18 With Last .X = .X + Mouse.X - spx .Y = .Y + Mouse.Y - spy End With End Public Sub Etichetta_MouseUp() Last.Mouse = Mouse.Default End
Note
[1] Vedere anche le seguenti pagine: