Come mai l'OnKeyPress non mi trova il tasto tabulatore?
Come mai l'OnKeyPress non mi trova il tasto tabulatore?
La tua radio preferita sempre con te
Forum home page
- Provoca il più bravo ... morirai come uno schiavo (Hackers)
- Non è la grana che ti spinge ma la voglia di essere UN NOME INCISO A FUOCO NELLA STORIA (Gemelli Diversi)
Il tasto TAB rientra in quei tasti speciali a cui viene delegata una funzione particolare da parte del sistema operativo.
L'evento OnKeyPress filtra i tasti che corrispondono ad un carattere, numerico o alfanumerico che sia. Per rilevare la pressione di altri tipi di tasti, occorre intercettare gli eventi OnKeyDown e OnKeyUp, che restituiscono una word al posto di un Char.
I codici ricevuti come parametri dai suddetti eventi possono essere confrontati con le costanti che iniziano con il prefisso VK (Virtual Key constants).
Sulla Guida si trova anche una tabella di tali codici.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
problema inverso:
alla pressione del tasto ENTER (#13) voglio tar si che il risultato sia un TAB (#09) come faccio?
La tua radio preferita sempre con te
Forum home page
- Provoca il più bravo ... morirai come uno schiavo (Hackers)
- Non è la grana che ti spinge ma la voglia di essere UN NOME INCISO A FUOCO NELLA STORIA (Gemelli Diversi)
Per il tasto INVIO, ti basta intercettare l'evento OnKeyPress verificando che il tasto premuto sia proprio quello interessato (che ha codice ASCII uguale a 13):
Ciao!codice:procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Edit2.SetFocus; Key := #0; end; end;![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
ok...nel caso di due edit mi va bene, 3 anche, ma quandi iniziano a diventare una decina o più, è un metodo un po da sclero, non credi?
La tua radio preferita sempre con te
Forum home page
- Provoca il più bravo ... morirai come uno schiavo (Hackers)
- Non è la grana che ti spinge ma la voglia di essere UN NOME INCISO A FUOCO NELLA STORIA (Gemelli Diversi)
E' decisamente da sclero...ma non posso sapere a priori con quanti controlli avrai a che fare nella tua implementazione.
Se si tratta di 2,4,8,10 caselle di testo, la soluzione può essere applicabile, altrimenti l'unica soluzione è costruire un controllo visuale personalizzato che discenda da TCustomEdit e che "scavalchi" i metodi preposti alla gestione dei tasti premuti, richiamando il metodo FindNextControl (normalmente non visibile dall'applicazione) per posizionarsi sul controllo successivo...ma è certamente un'operazione più lunga, complessa e laboriosa di quella che ti ho proposto.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
allora faccio così...nel manuale scrivo di premere il tasto tab e che vadano a fare in![]()
ciao e grazie
La tua radio preferita sempre con te
Forum home page
- Provoca il più bravo ... morirai come uno schiavo (Hackers)
- Non è la grana che ti spinge ma la voglia di essere UN NOME INCISO A FUOCO NELLA STORIA (Gemelli Diversi)