Lassen Sie die Eingabetaste wie die Registerkarte funktionieren
Konzentrieren Sie sich auf die nächste Eingabesteuerung, wenn Sie die Eingabetaste drücken
Getty Images/Prateek Prajapati/EyeEm
Wir wissen, dass im Allgemeinen das Drücken der Tabulatortaste den Eingabefokus auf das nächste Steuerelement und Shift-Tabulator auf das vorherige in der Tab-Reihenfolge des Formulars verschiebt. Beim Arbeiten mit Windows-Anwendungen , erwarten einige Benutzer intuitiv, dass sich die Eingabetaste wie eine Tabulatortaste verhält.
Es gibt eine Menge Code von Drittanbietern zur Implementierung einer besseren Verarbeitung der Dateneingabe in Delphi. Hier sind einige der besten Methoden (mit einigen Modifikationen).
Die folgenden Beispiele wurden unter der Annahme geschrieben, dass das Formular keine Standardschaltfläche enthält. Wenn Ihr Formular eine Schaltfläche enthält, deren Default-Eigenschaft auf True gesetzt ist, drücken Sie die Eingabetaste beiLaufzeitführt jeglichen Code aus, der in der Ereignisbehandlungsroutine für OnClick der Schaltfläche enthalten ist.
Als Tab eingeben
Der nächste Code bewirkt, dass sich Enter wie Tab und Shift+Enter wie Shift+Tab verhält:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Prozedur TForm1.Edit1KeyPress (Sender: TObject; var Key: Char) ;
Start
Wenn Schlüssel = #13, dann beginnen
Wenn HiWord(GetKeyState(VK_SHIFT)) 0 dann
SelectNext(Sender als TWinControl,False,True)
anders
SelectNext(Sender als TWinControl,True,True) ;
Schlüssel := #0
Ende;
Ende;
~~~~~~~~~~~~~~~~~~~~~~~~~~
im DBGrid
Wenn Sie eine ähnliche Eingabe (Umschalt + Eingabe)-Verarbeitung wünschenDBGrid:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Prozedur TForm1.DBGrid1KeyPress (Sender: TObject; var Key: Char) ;
Start
Wenn Schlüssel = #13, dann beginnen
Wenn HiWord(GetKeyState(VK_SHIFT)) 0 ist, dann beginnen
mit (Sender als TDBGrid) tun
wenn selectedindex > 0 dann
ausgewählter Index := ausgewählter Index - 1
sonst beginne
DataSource.DataSet.Prior;
selectedindex := fieldcount - 1;
Ende;
ende sonst beginne
mit (Sender als TDBGrid) tun
wenn selektiertindex<(fieldcount - 1) then
ausgewählter Index := ausgewählter Index + 1
sonst beginne
DataSource.DataSet.Next;
ausgewählter Index := 0;
Ende;
Ende;
Schlüssel := #0
Ende;
Ende;
~~~~~~~~~~~~~~~~~~~~~~~~~~
Weitere Informationen zu Delphi-Anwendungen
- Symphonie für Tasteninstrumente Machen Sie sich mit den Ereignisprozeduren OnKeyDown, OnKeyUp und onKeyPress vertraut, um auf verschiedene Tastenaktionen zu reagieren oder ASCII-Zeichen zusammen mit anderen Sondertasten zu verarbeiten und zu verarbeiten.
- Wofür steht #13#10 im Delphi-Code? Wenn Sie sich fragen, wofür diese Zeichen stehen, hier ist die Antwort.