Autor Beitrag
Duffman
Hält's aus hier
Beiträge: 4

Win XP Prof., Suse 9.1
D6 Pers
BeitragVerfasst: Sa 20.08.05 12:43 
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Sa 20.08.05 13:20 
wieso so kompliziert? es geht auch einfacher mit vituelle keys :wink:

ausblenden 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;

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Duffman Threadstarter
Hält's aus hier
Beiträge: 4

Win XP Prof., Suse 9.1
D6 Pers
BeitragVerfasst: Sa 20.08.05 13:39 
user profile iconstarsurfer hat folgendes geschrieben:
wieso so kompliziert? es geht auch einfacher mit vituelle keys :wink:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Sa 20.08.05 13:44 
ausblenden 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?

_________________
GEIZ IST GEIL! - Ihr Sozialamt