Få Enter-tangenten att fungera som fliken

Vi vet att generellt, genom att trycka på Tab-tangenten flyttas inmatningsfokus till nästa kontroll och Shift-Tab till föregående i formulärets flikordning. När du arbetar med Windows-applikationer förväntar sig vissa användare intuitivt att Enter-tangenten ska fungera som en Tab-nyckel.

Det finns många tredjepartskoder för att implementera bättre datainmatning i Delphi. Här är några av de bästa metoderna där ute (med några ändringar).

Exempel nedan skrivs med antagandet att det inte finns någon standardknapp på formuläret. När ditt formulär innehåller en knapp vars standardegenskap är inställd på True, genom att trycka på Enter vid körning körs någon kod som finns i knappens OnClick-händelseshanterare.

Ange som flik

Nästa kod får Enter att bete sig som Tab och Shift + Enter som Shift + Tab:

~~~~~~~~~~~~~~~~~~~~~~~~~
procedur TForm1.Edit1KeyPress (avsändare: TObject; var Key: Char);
Börja
   Om nyckel = # 13 Börja sedan
    Om HiWord (GetKeyState (VK_SHIFT)) 0 då
     Välj nästa (avsändare som TWinControl, False, True)
    annan
     Välj nästa (avsändare som TWinControl, True, True);
     Nyckel: = # 0
   slutet;
slutet;
~~~~~~~~~~~~~~~~~~~~~~~~~

i DBGrid

Om du vill ha liknande Enter (Shift + Enter) -behandling i DBGrid:

~~~~~~~~~~~~~~~~~~~~~~~~~
procedur TForm1.DBGrid1KeyPress (avsändare: TObject; var Key: Char);
Börja
   Om nyckel = # 13 Börja sedan
    Om HiWord (GetKeyState (VK_SHIFT)) 0 börjar sedan
     med (avsändare som TDBGrid) gör
     om valdindex> 0 då
      valdindex: = valdindex - 1
     annars börjar
      DataSource.DataSet.Prior;
      valdindex: = fältantal - 1;
     slutet;
    slut annat börjar
     med (avsändare som TDBGrid) gör
     om vald index < (fieldcount - 1) then
      valdindex: = valdindex + 1
     annars börjar
      DataSource.DataSet.Next;
      vald index: = 0;
     slutet;
   slutet;
   Nyckel: = # 0
   slutet;
slutet;
~~~~~~~~~~~~~~~~~~~~~~~~~

Mer information om Delphi-applikationer

  • Tangentbordssymfoni Bekanta dig med händelseprocedurerna OnKeyDown, OnKeyUp och onKeyPress för att svara på olika nyckelåtgärder eller hantera och bearbeta ASCII-tecken tillsammans med andra nyckelknappar.
  • Vad står # 13 # 10 för i Delphi Code? Om du undrar vad dessa karaktärer står för är här svaret.