Autore Topic: [Risolto] Identificazione tasti  (Letto 1937 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
[Risolto] Identificazione tasti
« il: 24 Novembre 2017, 21:31:31 »
Buonasera a tutti,
ho neccessità di identificare in modo univoco il tasto + della tastiera
dal tasto + del tastierino numerico.
Ho provato in tutti i modi con la classe Key ma non ne sono venuto a capo.
Con Key.Code mi viene restituito il codice 43 identico per entrambi i tasti,
quindi non posso distinguerli. Ipotizzo che esista nella classe una combinazione
di proprietà che mi permetta di identificare separatamente i due tasti, ma non
riesco a trovarla.
« Ultima modifica: 25 Novembre 2017, 19:37:38 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Identificazione tasti
« Risposta #1 il: 24 Novembre 2017, 22:29:22 »
Una cosa così potrebbe andare bene?:
Codice: [Seleziona]
Public Sub Form_KeyPress()
 
  If Key.Code = 43 Then
    If Key.State = 0 Then
      Print "Tasto + da tastiera"
    Else
      Print "Tasto + da tastierino"
    Endif
  Endif
 
End

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Identificazione tasti
« Risposta #2 il: 24 Novembre 2017, 23:01:44 »
Ciao Gianluigi,
ho provato il codice che hai postato, ma premendo il + da tastiera o il + da tastierino numerico
la Console restituisce sempre: Tasto + da tastiera
« Ultima modifica: 24 Novembre 2017, 23:02:18 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Identificazione tasti
« Risposta #3 il: 24 Novembre 2017, 23:13:59 »
A me invece il codice di Gianluigi funziona perfettamente.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Identificazione tasti
« Risposta #4 il: 24 Novembre 2017, 23:28:56 »
Ciao vuott,
non so cosa dirti. L'unica cosa che mi viene in mente è questa (ma penso sia una stronz...),
io stò usando un portatile, ma non credo ci sia differenza con una tastiera per pc desktop.
Provando il codice di Gianluigi o notato che se imposto Key.State = 1 mi identifica il tasto
+ del tastierino ma non quello da tastiera.
Quale potrebbe essere il motivo per il quale a me non funziona.... >:(
« Ultima modifica: 25 Novembre 2017, 12:08:34 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Identificazione tasti
« Risposta #5 il: 25 Novembre 2017, 09:16:53 »
 :ciao:
Citazione
Ciao Gianluigi,
ho provato il codice che hai postato, ma premendo il + da tastiera o il + da tastierino numerico
la Console restituisce sempre: Tasto + da tastiera
anche a me dice sempre che è da tastiera! (Ubuntu16.04 + Gambas daily)
 :-\  :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Identificazione tasti
« Risposta #6 il: 25 Novembre 2017, 11:45:27 »
Grazie kicco per la prova.
Mi stavo preoccupando dopo la risposta di vuott che magari avessi fatto qualche cavolata,
anche se vista la semplicità del codice postato da Gianluigi.... ma una svista può sempre
capitare.
Ora siamo 2 a 2 (a due funziona, a due no), dove cavolo può essere l'inghippo  ???
« Ultima modifica: 25 Novembre 2017, 11:46:46 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Identificazione tasti
« Risposta #7 il: 25 Novembre 2017, 11:50:50 »
 :ciao:
Citazione
dove cavolo può essere l'inghippo  ???
...la mia è una tastiera USB.
La vostra?
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re:Identificazione tasti
« Risposta #8 il: 25 Novembre 2017, 12:06:01 »
Come già detto uso un portatile con tastierino numerico
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Identificazione tasti
« Risposta #9 il: 25 Novembre 2017, 12:26:47 »
Io ho provato su due differenti computers con tastiera USB e funziona.

Potreste fare questa prova:

Create un nuovo progetto grafico gb.gui.qt e inserite questo codice:
Codice: [Seleziona]
Public Sub Form_KeyPress()

  Print Key.State 

End

Potete postare cosa vi risponde la console sui diversi "+"?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Identificazione tasti
« Risposta #10 il: 25 Novembre 2017, 13:03:39 »
Citazione
Potete postare cosa vi risponde la console sui diversi "+"?
+ tastiera = 0
+ tastierino = 536870912
 :rolleyes:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Identificazione tasti
« Risposta #11 il: 25 Novembre 2017, 13:07:33 »
 :rotfl:

E allora mi puoi spiegare perché il mio codice a te non funzionerebbe?  :P :P

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Identificazione tasti
« Risposta #12 il: 25 Novembre 2017, 13:33:17 »
Giusto per scrupolo ho provato anche sul portatile e funziona pure li con i codici scritti da Kicco.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Identificazione tasti
« Risposta #13 il: 25 Novembre 2017, 13:39:11 »
:rotfl:

E allora mi puoi spiegare perché il mio codice a te non funzionerebbe?  :P :P

 :ciao:
:-\...hai ragione, non ho una spiegazione, mi attenevo ai fatti!
È come se 536870912 venisse azzerato...
Problema di formato? Ma perchè solo per me e tornu? :hard:
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Identificazione tasti
« Risposta #14 il: 25 Novembre 2017, 13:51:10 »
:rotfl:

E allora mi puoi spiegare perché il mio codice a te non funzionerebbe?  :P :P

 :ciao:
:-\...hai ragione, non ho una spiegazione, mi attenevo ai fatti!
È come se 536870912 venisse azzerato...
Problema di formato? Ma perchè solo per me e tornu? :hard:
 :ciao:

Sempre su un progetto gb.gui.qt, prova questo codice:
Codice: [Seleziona]
Public Sub Form_KeyPress()

  Dim iState As Integer = Key.State
  Dim iCode As Integer = Key.Code

  If iCode = 43 Then
    If iState = 0 Then
      Print "Tasto + da tastiera"
    Else
      Print "Tasto + da tastierino"
    Endif
  Endif

End

e dimmi se funge

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro