Differenze tra le versioni di "Impedire che cliccando su un tasto della tastiera si produca più volte il medesimo effetto"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
Sappiamo che, utilizzando l'evento ''_KeyPress()'', allo scatenarsi di tale evento un comando presente nelle sua routine si scatena ripetutamente sino a quando il tasto non verrà rilasciato. | Sappiamo che, utilizzando l'evento ''_KeyPress()'', allo scatenarsi di tale evento un comando presente nelle sua routine si scatena ripetutamente sino a quando il tasto non verrà rilasciato. | ||
− | Per ovviare a questo problema, e quindi per far produrre solo una volta l'effetto di quanto previsto nella routine dell'evento ''_KeyPress()'', possiamo adottare un codice come il seguente: | + | Per ovviare a questo problema, e quindi per far produrre solo una volta l'effetto di quanto previsto nella routine dell'evento ''_KeyPress()'', possiamo adottare un codice come il seguente, che ingloba il codice fondamentale - presente nell'Evento "_KeyPress()" - all'interno della procedura condizionale "IF": |
Private status As Byte | Private status As Byte | ||
Riga 7: | Riga 7: | ||
'''Public''' Sub Form_KeyPress() | '''Public''' Sub Form_KeyPress() | ||
− | If status = 0 Then | + | If status == 0 Then |
Print "Produzione effetto" | Print "Produzione effetto" | ||
status = 1 | status = 1 | ||
Riga 13: | Riga 13: | ||
'''End''' | '''End''' | ||
− | |||
'''Public''' Sub Form_KeyRelease() | '''Public''' Sub Form_KeyRelease() | ||
Riga 21: | Riga 20: | ||
status = 0 | status = 0 | ||
+ | '''End''' | ||
+ | oppure quest'altro analogo, facendo uscire il controllo dalla routine dell'Evento "_KeyPress()" nel caso di verifica della condizione posta con "IF": | ||
+ | Private status As Byte | ||
+ | |||
+ | |||
+ | '''Public''' Sub Form_KeyPress() | ||
+ | |||
+ | If status == 1 Then <FONT Color=#B22222>Return</font> | ||
+ | |||
+ | Print "Produzione effetto" | ||
+ | status = 1 | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | '''Public''' Sub Form_KeyRelease() | ||
+ | |||
+ | Print "Tasto rilasciato" | ||
+ | |||
+ | status = 0 | ||
+ | |||
'''End''' | '''End''' |
Versione delle 12:11, 6 gen 2022
Sappiamo che, utilizzando l'evento _KeyPress(), allo scatenarsi di tale evento un comando presente nelle sua routine si scatena ripetutamente sino a quando il tasto non verrà rilasciato.
Per ovviare a questo problema, e quindi per far produrre solo una volta l'effetto di quanto previsto nella routine dell'evento _KeyPress(), possiamo adottare un codice come il seguente, che ingloba il codice fondamentale - presente nell'Evento "_KeyPress()" - all'interno della procedura condizionale "IF":
Private status As Byte Public Sub Form_KeyPress() If status == 0 Then Print "Produzione effetto" status = 1 Endif End Public Sub Form_KeyRelease() Print "Tasto rilasciato" status = 0 End
oppure quest'altro analogo, facendo uscire il controllo dalla routine dell'Evento "_KeyPress()" nel caso di verifica della condizione posta con "IF":
Private status As Byte Public Sub Form_KeyPress() If status == 1 Then Return Print "Produzione effetto" status = 1 End Public Sub Form_KeyRelease() Print "Tasto rilasciato" status = 0 End