Fai in modo che il tasto Invio funzioni come nella scheda

Sappiamo che, in genere, premendo il tasto Tab si sposta lo stato attivo di input sul controllo successivo e Shift-Tab su 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.

Esiste un sacco di codice di terze parti per implementare una migliore elaborazione della registrazione dei dati in Delphi. Ecco alcuni dei migliori metodi disponibili (con alcune modifiche).

Gli esempi seguenti sono scritti partendo dal presupposto che non esiste un pulsante predefinito nel modulo. Quando il modulo contiene un pulsante la cui proprietà predefinita è impostata su True, premendo Invio in fase di esecuzione si esegue qualsiasi codice contenuto nel gestore eventi OnClick del pulsante.

Inserisci come scheda

Il codice successivo fa sì che Invio si comporti come Tab e Maiusc + Invio come Maiusc + Tab:

~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.Edit1KeyPress (mittente: TObject; tasto var: Char);
inizio
   Se Key = # 13, quindi Inizia
    Se HiWord (GetKeyState (VK_SHIFT)) 0, allora
     SelectNext (Mittente come TWinControl, False, True)
    altro
     SelectNext (Mittente come TWinControl, True, True);
     Chiave: = # 0
   fine;
fine;
~~~~~~~~~~~~~~~~~~~~~~~~~

in DBGrid

Se si desidera avere un'elaborazione Enter (Shift + Enter) simile in DBGrid:

~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.DBGrid1KeyPress (mittente: TObject; tasto var: Char);
inizio
   Se Key = # 13, quindi Inizia
    Se HiWord (GetKeyState (VK_SHIFT)) 0, iniziare
     con (Sender as TDBGrid) do
     se selezionatoindex> 0 allora
      selectedindex: = selectedindex - 1
     altro inizia
      DataSource.DataSet.Prior;
      selectedindex: = fieldcount - 1;
     fine;
    fine altrimenti inizia
     con (Sender as TDBGrid) do
     se selezionatoindex < (fieldcount - 1) then
      selectedindex: = selectedindex + 1
     altro inizia
      DataSource.DataSet.Next;
      selectedindex: = 0;
     fine;
   fine;
   Chiave: = # 0
   fine;
fine;
~~~~~~~~~~~~~~~~~~~~~~~~~

Ulteriori informazioni sulle applicazioni Delphi

  • Tastiera Symphony Familiarizzare con le procedure degli eventi OnKeyDown, OnKeyUp e onKeyPress per rispondere a varie azioni chiave o gestire ed elaborare caratteri ASCII insieme ad altri tasti per scopi speciali.
  • Cosa significa # 13 # 10, nel codice Delphi? Se ti stai chiedendo cosa significano quei personaggi, ecco la risposta.