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 = #13) then begin Key := #0; 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
matze: Code- durch Delphi-Tags ersetzt.
Duffman - Sa 20.08.05 13:39
starsurfer 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