Entwickler-Ecke

Datenbanken - Enter ohne Tastatur


GUFR - So 20.07.03 14:19
Titel: Enter ohne Tastatur
Hallo

In einer Eingabemaske habe ich einen Button plaziert auf den ich klicke (Enter) wenn alle Sachen erfasst sind. Die Entertaste bewikt das gleiche.

Nun möchte ich dass dies nur mit dem Button möchlich ist, die Entertaste sollte zum springen von einem DBEdit zum zweiten usw. benützt werden können.

Vielen Dank zum voraus!

GUFR


fcg - So 20.07.03 14:23
Titel: Re: Enter ohne Tastatur
GUFR hat folgendes geschrieben:
Nun möchte ich dass dies nur mit dem Button möchlich ist, die Entertaste sollte zum springen von einem DBEdit zum zweiten usw. benützt werden können.


Benutzt man dafür nicht die Tab-Taste..?? Naja egal. Du könntest in einem onKey Event die Entertaste abfangen, und ihr Anweisungen zuordnen.

Wenn du nur den Effekt haben willst, das die Entertaste nciht das selbe wie der Button macht, änder die Tabreihefolge so, das der Button nicht unmittelbar nach dem letzten Edit Feld liegt.

fcg


Natti - Di 22.07.03 14:09

ENTER in TAB umwandeln:

OnKeyDown

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
begin
   key:=0;
   keybd_event(vk_tab,0,0,0);
   keybd_event(vk_tab,0, KEYEVENTF_KEYUP,0);
end;
end;


Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.


GUFR - Fr 25.07.03 19:11

Hallo Natti

Es funktioniert super. Danke !

GUFR


majolo - Sa 26.07.03 22:25

Das müsste auch gehen. Damit kannst du mit Enter ins nächste Feld springen.

Zuerst musst du die Eigenschaft "KeyPreview" des Formulars auf "true" setzen. Danach folgende Prozedur ins OnKey-Ereignis schreiben.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if Key = #13 then begin
  Key := #0;
  PostMessage(Handle, WM_NextDlgCtl, 0, 0);
 end;
end;