Computerwissenschaften

Stellen Sie sicher, dass die Eingabetaste in Delphi-Anwendungen wie folgt funktioniert

Stellen Sie sicher, dass die Eingabetaste in Delphi-Anwendungen wie folgt funktioniert

Wir wissen, dass durch Drücken der Tabulatortaste im Allgemeinen der Eingabefokus zum nächsten Steuerelement und die Umschalttaste zum vorherigen in der Tabulatorreihenfolge des Formulars verschoben wird. Bei der Arbeit mit Windows-Anwendungen erwarten einige Benutzer intuitiv, dass sich die Eingabetaste wie eine Tabulatortaste verhält.

Es gibt viel Code von Drittanbietern für die Implementierung einer besseren Dateneingabeverarbeitung in Delphi. Hier sind einige der besten Methoden (mit einigen Modifikationen).

Die folgenden Beispiele basieren auf der Annahme, dass das Formular keine Standardschaltfläche enthält. Wenn Ihr Formular eine Schaltfläche enthält, deren Standardeigenschaft auf True festgelegt ist, wird durch Drücken der Eingabetaste zur Laufzeit der im OnClick-Ereignishandler der Schaltfläche enthaltene Code ausgeführt.

 

Als Tab eingeben

Der nächste Code bewirkt, dass sich Enter wie Tab und Shift + Enter wie Shift + Tab verhält:

~~~~~~~~~~~~~~~~~~~~~~~~~
Verfahren TForm1.Edit1KeyPress (Sender: TObject; var Key: Char);
begin
If Key=# 13 Then Begin
If HiWord (GetKeyState (VK_SHIFT)) <> 0 then
SelectNext (Absender als TWinControl, False, True)
else
SelectNext (Absender als TWinControl, True, True);
Schlüssel:=# 0
Ende;
Ende;

~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

in DBGrid

Wenn Sie eine ähnliche Eingabe (Umschalt + Eingabe) in DBGrid wünschen :

~~~~~~~~~~~~~~~~~~~~~~~~~
Verfahren TForm1.DBGrid1KeyPress (Sender: TObject; var Key: Char);
begin
Wenn Key=# 13 Dann beginne
wenn HiWord (GetKeyState (VK_SHIFT)) <> 0, dann beginne
mit (Sender als TDBGrid), mache
wenn selectedindex> 0, dann
selectedindex:=selectedindex – 1
sonst beginne
DataSource.DataSet.Prior;
selectedindex:=fieldcount – 1;
Ende;
end else begin
with (Absender als TDBGrid) do
wenn selectedindex <(fieldcount – 1) dann
selectedindex:=selectedindex + 1
else begin
DataSource.DataSet.Next;
ausgewählter Index:=0;
Ende;
Ende;
Schlüssel:=# 0
Ende;
Ende;

~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Weitere Informationen zu Delphi-Anwendungen

  • Keyboard Symphony  Machen Sie sich mit den Ereignisprozeduren OnKeyDown, OnKeyUp und onKeyPress vertraut, um auf verschiedene Tastenaktionen zu reagieren oder ASCII-Zeichen zusammen mit anderen Spezialtasten zu verarbeiten.
  • Wofür steht # 13 # 10 im Delphi-Code?  Wenn Sie sich fragen, wofür diese Zeichen stehen, finden Sie hier die Antwort.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.