Differenze tra le versioni di "Conoscere le coordinate correnti del mouse sul Form senza tenere premuto un tasto del mouse"

Da Gambas-it.org - Wikipedia.
Riga 9: Riga 9:
 
  Public Sub Timer1_Timer()
 
  Public Sub Timer1_Timer()
 
   
 
   
   Me.Title = Mouse.ScreenX - Me.X
+
   Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
 +
        "      Y = " & CStr(Mouse.ScreenY - Me.Y)
 
   
 
   
 
  End
 
  End
Riga 25: Riga 26:
 
   Timer1.Stop
 
   Timer1.Stop
 
   
 
   
 +
End
 +
oppure quest'altro:
 +
Public Sub Form_Open()
 +
 +
  Me.Tracking = True
 +
  TextArea1.Tracking = True
 +
 +
End
 +
 +
 +
Public Sub Form_MouseMove()
 +
 
 +
  Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
 +
        "      Y = " & CStr(Mouse.ScreenY - Me.Y)
 +
 
 +
End
 +
 +
 +
Public Sub TextArea1_MouseMove()
 +
 
 +
  Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
 +
        "      Y = " & CStr(Mouse.ScreenY - Me.Y)
 +
 
 +
End
 +
Questo secondo codice potrebbe essere abbreviato così:
 +
Public Sub Form_Open()
 +
 +
  Me.Tracking = True
 +
  TextArea1.Tracking = True
 +
 +
  Object.Attach(Me, Me, "Controllo")
 +
  Object.Attach(TextArea1, Me, "Controllo")
 +
 +
End
 +
 +
 +
Public Sub Controllo_MouseMove()
 +
 
 +
  Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
 +
        "      Y = " & CStr(Mouse.ScreenY - Me.Y)
 +
 
 
  End
 
  End
  

Versione delle 21:30, 1 nov 2023

Per conoscere le coordinate correnti del mouse sul Form, sul quale siano presenti uno o più Controlli grafici, senza tenere premuto un tasto del mouse, si può adottare il seguente codice: [nota 1]

Public Sub Form_Open()

 Timer1.Delay = 20

End


Public Sub Timer1_Timer()

 Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
        "       Y = " & CStr(Mouse.ScreenY - Me.Y)

End


Public Sub Form_Enter()

 Timer1.Start

End


Public Sub Form_Leave()

 Timer1.Stop

End

oppure quest'altro:

Public Sub Form_Open()

 Me.Tracking = True
 TextArea1.Tracking = True

End


Public Sub Form_MouseMove()
 
 Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
        "       Y = " & CStr(Mouse.ScreenY - Me.Y)
 
End


Public Sub TextArea1_MouseMove()
 
 Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
        "       Y = " & CStr(Mouse.ScreenY - Me.Y)
 
End

Questo secondo codice potrebbe essere abbreviato così:

Public Sub Form_Open()

 Me.Tracking = True
 TextArea1.Tracking = True

 Object.Attach(Me, Me, "Controllo")
 Object.Attach(TextArea1, Me, "Controllo")

End


Public Sub Controllo_MouseMove()
 
 Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) &
        "       Y = " & CStr(Mouse.ScreenY - Me.Y)
 
End


Note

[1] Vedere anche le seguenti pagine: