Impedire che, mentre si tiene premuto un tasto della tastiera, si produca un effetto cliccando e rilasciando un altro tasto

Da Gambas-it.org - Wikipedia.
Versione del 23 ott 2024 alle 03:28 di Vuott (Discussione | contributi) (Creata pagina con "Mentre si tiene premuto un tasto, si intende impedire che, prima che questo tasto sia stato rilasciato per la produzione di un effetto mediante l'Evento "_KeyRelease()", siano...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Mentre si tiene premuto un tasto, si intende impedire che, prima che questo tasto sia stato rilasciato per la produzione di un effetto mediante l'Evento "_KeyRelease()", siano prodotti effetti dalla sollevazione degli Eventi "_KeyPress()" e "_KeyRelease()" di un altro tasto della tastiera. [nota 1]
Insomma si vuole impedire che, mentre si tiene premuto un tasto della tastiera, derivino effetti dalla attivazione degli Eventi "_KeyPress()" e "_KeyRelease()" premendo e rilasciando un diverso tasto.

Mostriamo un codice per ottenere quella inibizione.
In particolare i tasti della tastiera, presi in considerazione, sono il tasto della freccia a sinistra e quello della freccia a destra. L'obiettivo è quello per cui, sin tanto che si tiene premuto uno dei due tasti, premendo eventualmente l'altro, non si produce alcun effetto.

Private status As Integer


Public Sub Form_KeyPress()
 
 If status > 0 Then Return
 status = Key.Code
 
End


Public Sub Form_KeyRelease()
 
 If Key.Code <> status Then Return
 
 Select Case Key.Code
   Case Key.Right
     Print "Freccia a destra"
   Case Key.Left
     Print "Freccia a sinistra"
 End Select
 
 status = 0
 
End


Note

[1] Vedere anche la pagina: Impedire che cliccando su un tasto della tastiera si produca più volte il medesimo effetto