Faceți cheia Introducere funcționează ca fila

Ș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..

Introduceți ca filă

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;
~~~~~~~~~~~~~~~~~~~~~~~~~

în DBGrid

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;
~~~~~~~~~~~~~~~~~~~~~~~~~

Mai multe informații despre aplicațiile Delphi

  • Tastatura Simfonie Familiarizați-vă cu procedurile de evenimente OnKeyDown, OnKeyUp și onKeyPress pentru a răspunde la diverse acțiuni cheie sau gestionați și prelucrați caractere ASCII împreună cu alte taste speciale.
  • Ce înseamnă # 13 # 10, în Codul Delphi? Dacă vă întrebați pentru ce reprezintă acele personaje, iată răspunsul.