Differenze tra le versioni di "Impedire, mentre si tiene premuto un tasto della tastiera, si produca il medesimo effetto cliccando su un altro tasto"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
Il caso è quello in cui si intende evitare che, mentre si tiene premuto un tasto prima che sia stato rilasciato per la produzione di un effetto mediante l'evento ''_KeyRelease()'', si intende impedire che  - dopo aver eventualmente premuto un altro tasto - possa produrre il medesimo efetto anch'esso con l'evento ''_KeyRelease()'' .
+
Il caso è quello in cui si intende evitare che, mentre si tiene premuto un tasto prima che sia stato rilasciato per la produzione di un effetto mediante l'Evento "_KeyRelease()", si intende impedire che  - dopo aver eventualmente premuto un altro tasto - possa produrre il medesimo effetto anch'esso con l'Evento "_KeyRelease()". <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
 
  
 
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.
 
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.
Riga 6: Riga 5:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_KeyPress()
+
  Public Sub Form_KeyPress()
 
    
 
    
 
   If status > 0 Then Return
 
   If status > 0 Then Return
 
   status = Key.Code
 
   status = Key.Code
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_KeyRelease()
+
  Public Sub Form_KeyRelease()
 
    
 
    
 
   If Key.Code <> status Then Return
 
   If Key.Code <> status Then Return
Riga 27: Riga 26:
 
   status = 0
 
   status = 0
 
    
 
    
  '''End'''
+
  End
 +
 
 +
 
 +
 
 +
=Note=
 +
[1] Vedere anche la pagina: [[Impedire che cliccando su un tasto della tastiera si produca più volte il medesimo effetto]]

Versione attuale delle 18:10, 1 nov 2023

Il caso è quello in cui si intende evitare che, mentre si tiene premuto un tasto prima che sia stato rilasciato per la produzione di un effetto mediante l'Evento "_KeyRelease()", si intende impedire che - dopo aver eventualmente premuto un altro tasto - possa produrre il medesimo effetto anch'esso con l'Evento "_KeyRelease()". [nota 1]

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