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]]&#...") |
|||
(3 versioni intermedie di uno stesso utente non sono mostrate) | |||
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 | ||
Private i As Integer | Private i As Integer | ||
− | |||
− | |||
Riga 20: | Riga 18: | ||
End | End | ||
− | Public Sub | + | |
+ | Public Sub DrawingArea1_MouseUp() | ||
<FONT Color=gray>' ''Se non si è cliccato con il tasto sinistro del mouse, si esce dalla routine:''</font> | <FONT Color=gray>' ''Se non si è cliccato con il tasto sinistro del mouse, si esce dalla routine:''</font> | ||
Riga 26: | Riga 25: | ||
Inc i | Inc i | ||
− | + | ||
<FONT Color=gray>' ''Genera e imposta una "Label", assegnadola come "figlia" alla "DrawingArea":''</font> | <FONT Color=gray>' ''Genera e imposta una "Label", assegnadola come "figlia" alla "DrawingArea":''</font> | ||
With lb = New Label(DrawingArea1) As "Etichetta" | With lb = New Label(DrawingArea1) As "Etichetta" | ||
− | |||
− | |||
− | |||
.Text = " Label " & CStr(i) | .Text = " Label " & CStr(i) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
.W = .Font.TextWidth(.Text) + 5 | .W = .Font.TextWidth(.Text) + 5 | ||
.H = .Font.TextHeight(.Text) | .H = .Font.TextHeight(.Text) | ||
+ | .X = Mouse.X | ||
.Y = Mouse.Y - .H | .Y = Mouse.Y - .H | ||
+ | .Background = Color.SoftOrange | ||
+ | .Border = Border.Raised | ||
End With | End With | ||
− | End | + | End |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Public Sub Etichetta_MouseMove() | Public Sub Etichetta_MouseMove() | ||
Riga 79: | Riga 44: | ||
Last.Mouse = 18 | Last.Mouse = 18 | ||
With Last | With Last | ||
− | .X = .X + Mouse.X - | + | .X = .X + Mouse.X - Mouse.StartX |
− | .Y = .Y + Mouse.Y - | + | .Y = .Y + Mouse.Y - Mouse.StartY |
End With | End With | ||
End | End | ||
+ | |||
Public Sub Etichetta_MouseUp() | Public Sub Etichetta_MouseUp() | ||
Riga 94: | Riga 60: | ||
=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 attuale delle 14:52, 27 giu 2024
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 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_MouseUp() ' 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" .Text = " Label " & CStr(i) .W = .Font.TextWidth(.Text) + 5 .H = .Font.TextHeight(.Text) .X = Mouse.X .Y = Mouse.Y - .H .Background = Color.SoftOrange .Border = Border.Raised End With End Public Sub Etichetta_MouseMove() Last.Mouse = 18 With Last .X = .X + Mouse.X - Mouse.StartX .Y = .Y + Mouse.Y - Mouse.StartY End With End Public Sub Etichetta_MouseUp() Last.Mouse = Mouse.Default End
Note
[1] Vedere anche le seguenti pagine: