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.
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, premere Invio alle runtime esegue qualsiasi codice contenuto nel gestore eventi OnClick del pulsante.
~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.Edit1KeyPress (Mittente: TObject; Chiave 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;
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.DBGrid1KeyPress (Mittente: TObject; Chiave 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
Fonte di dati. DataSet. Prior;
selectedindex: = fieldcount - 1;
fine;
fine altrimenti inizia
con (Sender as TDBGrid) do
se selectedindex selectedindex: = selectedindex + 1
altro inizia
Fonte di dati. DataSet. Il prossimo;
selectedindex: = 0;
fine;
fine;
Chiave: = # 0
fine;
fine;
~~~~~~~~~~~~~~~~~~~~~~~~~