Fai in modo che il tasto Invio funzioni come la scheda
Attiva il controllo della voce successiva sul tasto Invio Premere
Getty Images/Prateek Prajapati/EyeEm
Sappiamo che, in genere, premendo il tasto Tab si sposta lo stato attivo dell'input sul controllo successivo e Maiusc-Tab su quello precedente nell'ordine di tabulazione del modulo. Quando si lavora con Applicazioni Windows , alcuni utenti si aspettano intuitivamente che il tasto Invio si comporti come un tasto Tab.
C'è molto codice di terze parti per implementare una migliore elaborazione dell'immissione dei dati in Delphi. Ecco alcuni dei migliori metodi disponibili (con alcune modifiche).
Gli esempi seguenti sono scritti presupponendo che non vi sia alcun pulsante predefinito nel modulo. Quando il modulo contiene un pulsante la cui proprietà Default è impostata su True, premere Invio atempo di esecuzioneesegue qualsiasi codice contenuto nel gestore di eventi OnClick del pulsante.
Entra come Tab
Il codice successivo fa sì che Invio si comporti come Tab e Maiusc+Invio come Maiusc+Tab:
~~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.Edit1KeyPress (Mittente: TObject; var Key: Char) ;
inizio
Se Chiave = #13 Quindi Inizia
Se HiWord(GetKeyState(VK_SHIFT)) 0 allora
SelectNext(Sender as TWinControl,False,True)
altro
SelectNext(Mittente come TWinControl,True,True) ;
Tasto := #0
fine;
fine;
~~~~~~~~~~~~~~~~~~~~~~~~~~
in DBGrid
Se vuoi avere un'elaborazione simile Invio (Maiusc+Invio) inDBGrid:
~~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.DBGrid1KeyPress (Mittente: TObject; chiave var: Char) ;
inizio
Se Chiave = #13 Quindi Inizia
Se HiWord(GetKeyState(VK_SHIFT)) 0 inizia
con (Mittente come TDBGrid) fare
se selezionato indice > 0 allora
indice selezionato := indice selezionato - 1
altrimenti inizia
DataSource.DataSet.Prior;
indiceselezionato := conteggio campi - 1;
fine;
fine altrimenti inizia
con (Mittente come TDBGrid) fare
se selezionato indice<(fieldcount - 1) then
indice selezionato := indice selezionato + 1
altrimenti inizia
DataSource.DataSet.Next;
indice selezionato := 0;
fine;
fine;
Tasto := #0
fine;
fine;
~~~~~~~~~~~~~~~~~~~~~~~~~~
Maggiori informazioni sulle applicazioni Delphi
- Sinfonia per tastiera Acquisire familiarità con le procedure degli eventi OnKeyDown, OnKeyUp e onKeyPress per rispondere a varie azioni chiave o gestire ed elaborare caratteri ASCII insieme ad altre chiavi per scopi speciali.
- Cosa significa #13#10, nel codice Delphi? Se ti stai chiedendo cosa rappresentano quei personaggi, ecco la risposta.