Entwickler-Ecke

Sonstiges (Delphi) - Probleme mit der [Enter]-Taste im Editfeld.


Duffman - Sa 20.08.05 12:43
Titel: Probleme mit der [Enter]-Taste im Editfeld.
Hallo,

ich möchte, daß die Auswertung einer Eingabe in einem EditFeld quasi erfolgt, wenn dort [Enter] gedrückt wird. Ich dachte eigentlich, daß es so gehen sollte, daß ich dem OnKeyPress-Ereignis folgende Prozedur zuweise:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
  if (Key = #13then
  begin
    Key := #0;
    //Hier die eigentlich Auswertung
  end;
end;


Irgendwie passiert gar nichts, wenn ich in dem entsprecheden Editfeld [Enter] drücken. Drücke, ich aber [Shift]+[Enter], passiert genau das, was passieren sollte, wenn ich nur Enter drücke (d.h. dann erfolgt die Auswertung anstandlos). CapsLock ist aus, das Keyboard verhält sich sonst ganz normal nur bei [Enter] allein passiert leider gar nichts...

Was übersehe ich? Für Hilfe bin ich sehr dankbar.

Grüße
Duffman

Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt.


starsurfer - Sa 20.08.05 13:20

wieso so kompliziert? es geht auch einfacher mit vituelle keys :wink:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VK_RETURN then
begin
showmessage('Auswerten');
end;
end;


Duffman - Sa 20.08.05 13:39

user profile iconstarsurfer hat folgendes geschrieben:
wieso so kompliziert? es geht auch einfacher mit vituelle keys :wink:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VK_RETURN then
begin
showmessage('Auswerten');
end;
end;

Klar, das ginge auch. Allerdings ist die Prozedur bei mir dem Ereignis OnKeyPress zugeordnet, nicht dem OnKeyDown (die beiden unterscheiden sich auch darin, daß bei ersterem Key vom Typ Char ist, bei letzterem vom Type Word). Das habe ich aber auch schon ausprobiert und darauf kommt es m.E. nicht an: Irrwitzigerweise spricht die Routine ja an, wenn ich im Editfeld z.B. Shift und Enter gleichzeitig drücke - und macht dann das, was Enter allein bewirken sollte. Nur mit Enter allein geht's irgendwie nicht...

Grüße
Duffman


starsurfer - Sa 20.08.05 13:44


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
   begin
   showmessage('doof');
   end;
end;



der funzt bei mir ohne probs......

kann es sein das du de FESTSTELLTASTE aktiviert hast?