Entwickler-Ecke

Sonstiges (Delphi) - KeyDown ohne Sound??!!


covhax - Mo 02.11.09 17:56
Titel: KeyDown ohne Sound??!!
Hi nochmal;D Ich klicke in ein Edit Feld tippe was ein und mit dem unten stehenden Code geschiet dann etwas wenn ich ENTER drücke. Genau dann kommt ein kurzer lauter Sound (habe ihn mal angehängt) durch die Lautsprecher. Hört sich nach einem Windows-Fehler an, es erscheint aber nichts. Delphi 2009 & Win XP.


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = VK_Return then


Woran liegt das und wie kann ich das verhindern?
Danke!

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Gausi - Mo 02.11.09 18:00

Füge in deine Prozedur noch ein key := 0; ein, dann sollte der Sound verschwinden.


covhax - Mo 02.11.09 18:28

Habe es einmal so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = VK_Return then
begin
  key := 0;
  edt_Search.text := edit1.text;


und einmal so:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = VK_Return then
begin
  edt_Search.text := edit1.text;
  key := 0;


Gemacht. Geht beides nicht :(


Marc. - Mo 02.11.09 19:26

AFAIK besteht das Problem darin, dass das OnKeyPress-Event, welches für den Beep verantwortlich ist, immer vor dem OnKeyDown-Event aufgerufen wird. Wenn meine These korrekt sein sollte, wird dir wohl nichts anderes übrig bleiben, als die Return-Taste (#13) über das OnKeyPress-Event abzufangen. ;)


covhax - Mo 02.11.09 20:12


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
  key:=#0;


Gleiches Problem :(

EDIT: Gelöst :)

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
  key:=#0;