Gambas-it

Gambas3 => Programmazione => Topic aperto da: tornu - 24 Novembre 2017, 21:31:31

Titolo: [Risolto] Identificazione tasti
Inserito da: tornu - 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.
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 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:
Titolo: Re:Identificazione tasti
Inserito da: tornu - 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
Titolo: Re:Identificazione tasti
Inserito da: vuott - 24 Novembre 2017, 23:13:59
A me invece il codice di Gianluigi funziona perfettamente.
Titolo: Re:Identificazione tasti
Inserito da: tornu - 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.... >:(
Titolo: Re:Identificazione tasti
Inserito da: kicco - 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:
Titolo: Re:Identificazione tasti
Inserito da: tornu - 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  ???
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 11:50:50
 :ciao:
Citazione
dove cavolo può essere l'inghippo  ???
...la mia è una tastiera USB.
La vostra?
 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: tornu - 25 Novembre 2017, 12:06:01
Come già detto uso un portatile con tastierino numerico
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 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:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 13:03:39
Citazione
Potete postare cosa vi risponde la console sui diversi "+"?
+ tastiera = 0
+ tastierino = 536870912
 :rolleyes:
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 13:07:33
 :rotfl:

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

 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 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:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 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:
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 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:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 13:52:29
Scoperto!
funziona con gb.qt4, gb.gui.qt e non con gb.gui!
La seconda prova l'ho fatta come hai richiesto Gianluigi QT4
La prima (che non mi funzionava) con la GUI!
Tornu tu cosa usi?
 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 13:58:03
Citazione
Sempre su un progetto gb.gui.qt, prova questo codice:
Funzia!  :D
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 14:00:26
Scoperto!
funziona con gb.qt4, gb.gui.qt e non con gb.gui!
La seconda prova l'ho fatta come hai richiesto Gianluigi QT4
La prima (che non mi funzionava) con la GUI!
Tornu tu cosa usi?
 :ciao:

Scoperto!
funziona con gb.qt4 e non con gb.gui!
La seconda prova l'ho fatta come hai richiesto Gianluigi QT4
La prima (che non mi funzionava) con la GUI!
Tornu tu cosa usi?
 :ciao:

Noooooo, non ci posso credere dov'è dov'è, non la trovo! Datemi la faccina che si suicida! Vuott aiutooooooooo...  :'(
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 14:02:41
per completezza non funziona con gb.gtk!
 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 14:06:54
Citazione
Datemi la faccina che si suicida! Vuott aiutooooooooo...  :'(
scusa, 'sta cosa solo perchè ho fatto una correzione?
Ho usato QT4 per la prova poi ho visto che la chiedevi con gui.qt e ho rifatto la prova, dove ho commesso l'enorme peccato?
Piuttosto forse va segnalato il bug!
No?? :P
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 14:24:47
Citazione
Datemi la faccina che si suicida! Vuott aiutooooooooo...  :'(
scusa, 'sta cosa solo perchè ho fatto una correzione?
Ho usato QT4 per la prova poi ho visto che la chiedevi con gui.qt e ho rifatto la prova, dove ho commesso l'enorme peccato?
Piuttosto forse va segnalato il bug!
No?? :P

Ti devi decidere: Hai fatto la prova che non funzionava con gb.gui che in Ubuntu significa GTK3 oppure l'hai fatta con QT4?

Perché a me funziona con tutte le QT (QT4, QT5, gb.gui.qt) sia con Gambas Trunk che con Gambas3 3.10.
Ti invito a rifare bene le prove altrimenti la confusione è massima.

 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 14:31:27
Citazione
Ti devi decidere: Hai fatto la prova che non funzionava con gb.gui che in Ubuntu significa GTK3 oppure l'hai fatta con QT4?
Scusa forse non mi sono spiegato bene.
Citazione
Perché a me funziona con tutte le QT (QT4, QT5, gb.gui.qt) sia con Gambas Trunk che con Gambas3 3.10.
confermo che funziona con gb.qt4, con gb.gui.qt mentre non funziona con gb.gtk3 e gb.gui.
Ma mi sembra che è quello che ho scritto nel post incriminato!
 :ciao:
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 14:43:12
Citazione
Ti devi decidere: Hai fatto la prova che non funzionava con gb.gui che in Ubuntu significa GTK3 oppure l'hai fatta con QT4?
Scusa forse non mi sono spiegato bene.
Citazione
Perché a me funziona con tutte le QT (QT4, QT5, gb.gui.qt) sia con Gambas Trunk che con Gambas3 3.10.
confermo che funziona con gb.qt4, con gb.gui.qt mentre non funziona con gb.gtk3 e gb.gui.
Ma mi sembra che è quello che ho scritto nel post incriminato!
 :ciao:

Appunto e io ridico le stesse cose che ho detto li.

Ma scusa la classe Key (http://gambaswiki.org/wiki/comp/gb.qt4/key) fa parte del componente qt4 e che non funzioni con le GTK è un fatto noto, davo quindi per scontato che uno esperto come te lo sapesse molto bene.
Oltre a tutto mi dicevi che il codice rispondeva a Key.Code = 43 e questo mi ha tratto in inganno, infatti GTK non dovrebbe rispondere.

Comunque sia ora è tutto chiaro, non si tratta affatto di un bug o almeno non è un bug di Gambas.  :P

 :ciao: :ciao:
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 14:45:40
Citazione
...davo quindi per scontato che uno esperto come te lo sapesse...
Fatal error!
Ma dai Gianluigi, mi conosci ... :P
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 14:49:37

Ma dai Gianluigi, mi conosci ... :P

Si, sei molto simpatico e una colonna di questo forum  :-*

... ma quando fai così  >:( :evil:

 :D  :ciao:
Titolo: Re:Identificazione tasti
Inserito da: vuott - 25 Novembre 2017, 15:16:29
... ma quando fai così  >:( :evil:


https://www.youtube.com/watch?v=fO2Khrd6_jU    :D
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 15:25:04
... ma quando fai così  >:( :evil:


https://www.youtube.com/watch?v=fO2Khrd6_jU    :D

Davvero sembrava un bisticcio fra innamorati?  ;D
Credi che kicco ed io dovremmo fare outlet?  :P :P

 :P :P :P
Titolo: Re:Identificazione tasti
Inserito da: kicco - 25 Novembre 2017, 15:55:14
 :D
Ma veniamo alla "ciccia": tornu hai risolto?

Titolo: Re:Identificazione tasti
Inserito da: vuott - 25 Novembre 2017, 17:10:39
.... fare outlet?

...ma... non era " coming out " ?   (http://www.ilvicolodellenews.com/wp-includes/images/smilies/thinking.gif)
Titolo: Re:Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 17:48:02
.... fare outlet?

...ma... non era " coming out " ?   (http://www.ilvicolodellenews.com/wp-includes/images/smilies/thinking.gif)

 ;D  "fare outlet" Checco Zalone docet dal film Cado dalle nubi, se ricordo bene  :D
Titolo: Re:Identificazione tasti
Inserito da: tornu - 25 Novembre 2017, 19:35:59
:D
Ma veniamo alla "ciccia": tornu hai risolto?
Ho letto solo ora le vostre discussioni.
Sì, ho risolto, ma rimango perplesso da quanto detto da Gianluigi.
Per quanto mi riguarda il mio problema era il componente gb.qt4, disattivandolo (anche perchè non convivono)
e attivando gb.gui.qt il codice di Gianluigi funziona perfettamente.
La perplessità di cui sopra:
Perché a me funziona con tutte le QT (QT4, QT5, gb.gui.qt) sia con Gambas Trunk che con Gambas3 3.10.
@Gianluigi
Quando ho fatto la prima prova con il primo codice da te postato nel mio progetto in cui cercavo di identificare
i due tasti + era attivo il componente gb.qt4 e come hai avuto modo di leggere dalle mie risposte non
funzionava assolutamente, come è possibile che a te funzioni?
Titolo: Re:[Risolto] Identificazione tasti
Inserito da: Gianluigi - 25 Novembre 2017, 19:59:14
Dovresti fare un piccolo progetto (http://www.gambas-it.org/smf/index.php?topic=6014.msg42683#msg42683) con quanto qui scritto e vedere cosa ti risponde la console impostando sia le qt4 che le 5 se le hai oppure gb.gui.qt e controllare magari lo riporti anche qui per vedere se davvero nel tuo Gambas non funziona o se invece magari il tuo progetto per qualche motivo si è guastato, una volta mi è successo.

Ricorda che se non hai le QT5 scrivere gb.gui.qt o gb.qt4 è la stessa cosa.

 :ciao:


Titolo: Re:[Risolto] Identificazione tasti
Inserito da: tornu - 25 Novembre 2017, 21:16:17
Non ti posto il risultato delle prove per un semplice motivo, come hai detto tu
funziona con tutte le QT
Chiedo scusa, ma non so proprio dare una spiegazione sensata.
E' mai possibile che disattivando e riattivando i componenti questi tornino a fare
il loro dovere...mah  :o
Non so che dire, se non ringraziarvi per il sempre vostro prezioso aiuto  :ciao: