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 1: | Riga 1: | ||
− | 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 | + | 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 possono adottare alcune modalità. <SUP>[[[#Note|nota 1]]]</sup> |
Public Sub Form_Open() | Public Sub Form_Open() | ||
− | + | Me.Tracking = True | |
+ | TextArea1.Tracking = True | ||
+ | |||
+ | Object.Attach(Me, Me, "Controllo") | ||
+ | Object.Attach(TextArea1, Me, "Controllo") | ||
End | End | ||
− | Public Sub | + | Public Sub Controllo_MouseMove() |
− | + | ||
Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) & | Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) & | ||
" Y = " & CStr(Mouse.ScreenY - Me.Y) | " Y = " & CStr(Mouse.ScreenY - Me.Y) | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
End | End | ||
− | + | oppure quest'altro codice: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | oppure quest'altro: | ||
Public Sub Form_Open() | Public Sub Form_Open() | ||
Riga 50: | Riga 40: | ||
End | End | ||
− | + | ||
+ | |||
+ | ===Usando un ''Timer''=== | ||
Public Sub Form_Open() | Public Sub Form_Open() | ||
− | + | Timer1.Delay = 20 | |
− | |||
− | + | End | |
− | |||
− | |||
+ | Public Sub Timer1_Timer() | ||
− | |||
− | |||
Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) & | Me.Title = "X = " & CStr(Mouse.ScreenX - Me.X) & | ||
" Y = " & CStr(Mouse.ScreenY - Me.Y) | " Y = " & CStr(Mouse.ScreenY - Me.Y) | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Form_Enter() | ||
+ | |||
+ | Timer1.Start | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Form_Leave() | ||
+ | |||
+ | Timer1.Stop | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | ===Ponendo in osservazione il file-device del Mouse=== | ||
+ | Si aprirà il file-device "/dev/input/muse0" e lo si porrà in "osservazione": | ||
+ | Private fl As File | ||
+ | |||
+ | |||
+ | Public Sub form_Open() | ||
+ | |||
+ | <FONT Color=gray>' ''Provvede a eliminare la protezione del file-device del mouse prescelto:''</font> | ||
+ | Dim pw As String | ||
+ | pw = InputBox("Immettere la propria password di sistema...") | ||
+ | Shell "echo " & pw & " | sudo -S chmod 444 /dev/input/mouse0" Wait | ||
+ | |||
+ | <FONT Color=gray>' ''Apre il file-device "/dev/input/mouse0" e lo pone in "osservazione":''</font> | ||
+ | fl = Open "/dev/input/mouse0" For Read Watch | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub File_Read() | ||
+ | |||
+ | If (Mouse.ScreenX < Me.X) Or (Mouse.ScreenX > (Me.X + Me.W)) Or | ||
+ | (Mouse.ScreenY < Me.Y) Or (Mouse.ScreenY > (Me.Y + Me.H)) Then Return | ||
+ | |||
+ | Label1.Text = (Mouse.ScreenX - Me.X) & " " & (Mouse.ScreenY - Me.Y) | ||
End | End | ||
− | |||
Versione attuale delle 23:32, 27 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 possono adottare alcune modalità. [nota 1]
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
oppure quest'altro codice:
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
Usando un Timer
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
Ponendo in osservazione il file-device del Mouse
Si aprirà il file-device "/dev/input/muse0" e lo si porrà in "osservazione":
Private fl As File Public Sub form_Open() ' Provvede a eliminare la protezione del file-device del mouse prescelto: Dim pw As String pw = InputBox("Immettere la propria password di sistema...") Shell "echo " & pw & " | sudo -S chmod 444 /dev/input/mouse0" Wait ' Apre il file-device "/dev/input/mouse0" e lo pone in "osservazione": fl = Open "/dev/input/mouse0" For Read Watch End Public Sub File_Read() If (Mouse.ScreenX < Me.X) Or (Mouse.ScreenX > (Me.X + Me.W)) Or (Mouse.ScreenY < Me.Y) Or (Mouse.ScreenY > (Me.Y + Me.H)) Then Return Label1.Text = (Mouse.ScreenX - Me.X) & " " & (Mouse.ScreenY - Me.Y) End
Note
[1] Vedere anche le seguenti pagine: