Știm că, în general, apăsarea tastei Tab mută focalizarea de intrare la următorul control și Shift-Tab la anterior în ordinea file a formularului. Când lucrează cu aplicații Windows, unii utilizatori se așteaptă intuitiv ca tasta Enter să se comporte ca o cheie Tab.
Există o mulțime de coduri terțe pentru implementarea procesării mai bune a introducerii datelor în Delphi. Iată câteva dintre cele mai bune metode de acolo (cu unele modificări).
Exemplele de mai jos sunt scrise cu presupunerea că nu există un buton implicit pe formular. Când formularul dvs. conține un buton a cărui proprietate implicită este setată pe True, apăsând Enter la runtime execută orice cod conținut în gestionatorul de evenimente OnClick al butonului..
Următorul cod face ca Enter să se comporte ca Tab, iar Shift + Enter ca Shift + Tab:
~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.Edit1KeyPress (Expeditor: TObject; var Key: Char);
începe
Dacă cheia = # 13, apoi începe
Dacă HiWord (GetKeyState (VK_SHIFT)) 0 atunci
SelectNext (Expeditor ca TWinControl, False, True)
altfel
SelectNext (Expeditor ca TWinControl, True, True);
Cheie: = # 0
Sfârșit;
Sfârșit;
~~~~~~~~~~~~~~~~~~~~~~~~~
Dacă doriți să aveți procesare similară (Shift + Enter) în DBGrid:
~~~~~~~~~~~~~~~~~~~~~~~~~
procedura TForm1.DBGrid1KeyPress (expeditor: TObject; cheie var: Char);
începe
Dacă cheia = # 13, apoi începe
Dacă HiWord (GetKeyState (VK_SHIFT)) 0 începeți
cu (Expeditor ca TDBGrid)
dacă selectațiindex> 0 atunci
selectatindex: = selectatindex - 1
altceva începe
DataSource.DataSet.Prior;
selectindex: = număr de câmp - 1;
Sfârșit;
sfârșitul începe altceva
cu (Expeditor ca TDBGrid)
dacă selectațiindex < (fieldcount - 1) then
selectatindex: = selectatindex + 1
altceva începe
DataSource.DataSet.Next;
selectat index: = 0;
Sfârșit;
Sfârșit;
Cheie: = # 0
Sfârșit;
Sfârșit;
~~~~~~~~~~~~~~~~~~~~~~~~~