Differenze tra le versioni di "Intercettare selezione di Menu"
Da Gambas-it.org - Wikipedia.
Riga 7: | Riga 7: | ||
− | + | Public Sub Form_Open() | |
Dim Menu1 As Menu | Dim Menu1 As Menu | ||
Riga 37: | Riga 37: | ||
End With | End With | ||
− | + | End | |
− | + | ||
+ | Public Sub Menu1_Show() | ||
With tm = New Timer As "Tempus" | With tm = New Timer As "Tempus" | ||
Riga 46: | Riga 47: | ||
End With | End With | ||
− | + | End | |
− | + | ||
+ | Public Sub Tempus_Timer() | ||
Dim rt2 As New Rect(Me.ScreenX + 10, Me.ScreenY + 26, Me.Font.TextWidth(Menu2.Caption) + 20, Me.Font.TextHeight(Menu2.Caption)) | Dim rt2 As New Rect(Me.ScreenX + 10, Me.ScreenY + 26, Me.Font.TextWidth(Menu2.Caption) + 20, Me.Font.TextHeight(Menu2.Caption)) | ||
Riga 59: | Riga 61: | ||
If rt4.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu4.Tag | If rt4.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu4.Tag | ||
− | + | End | |
+ | |||
− | + | Public Sub Menu1_Hide() | |
tm.Stop | tm.Stop | ||
− | + | End |
Versione attuale delle 03:23, 10 giu 2024
Per intercettare la sola e semplice selezione delle sottovoci di un Menu, ossia quando si scorre con il puntatore del mouse sugli item di una voce principale di Menu, è possibile utilizzare un codice come il seguente:
Private Menu2 As Menu Private Menu3 As Menu Private Menu4 As Menu Private Label1 As Label Private tm As Timer Public Sub Form_Open() Dim Menu1 As Menu With Menu1 = New Menu(Me) As "Menu1" .Caption = "Menu1" End With With Menu2 = New Menu(Menu1) As "Menu2" .Caption = "Menu2" .Tag = "Questo è il Menu2 !" End With With Menu3 = New Menu(Menu1) As "Menu3" .Caption = "Menu3" .Tag = "Questo è il Menu3 !" End With With Menu4 = New Menu(Menu1) As "Menu4" .Caption = "Menu4" .Tag = "Questo è il Menu4 !" End With With Label1 = New Label(Me) .W = 200 .H = 30 .X = (Me.W * 0.5) - (.W * 0.5) .Y = Me.H * 0.6 .Border = Border.Plain .Alignment = Align.Center .Foreground = Color.Red End With End Public Sub Menu1_Show() With tm = New Timer As "Tempus" .Delay = 20 .Start End With End Public Sub Tempus_Timer() Dim rt2 As New Rect(Me.ScreenX + 10, Me.ScreenY + 26, Me.Font.TextWidth(Menu2.Caption) + 20, Me.Font.TextHeight(Menu2.Caption)) Dim rt3 As New Rect(Me.ScreenX + 10, Me.ScreenY + 50, Me.Font.TextWidth(Menu3.Caption) + 20, Me.Font.TextHeight(Menu3.Caption)) Dim rt4 As New Rect(Me.ScreenX + 10, Me.ScreenY + 72, Me.Font.TextWidth(Menu4.Caption) + 20, Me.Font.TextHeight(Menu4.Caption)) Label1.Text = Null If rt2.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu2.Tag If rt3.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu3.Tag If rt4.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu4.Tag End Public Sub Menu1_Hide() tm.Stop End