TEdit - if Key

0

Mam pole TEdit. Po wciśnięciu w jego obrębie entera ma wykonać się jakiś kod.
Wygląda to tak:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 13 then Label1.Caption := 'Wcisnales ENTER!'
end;

W tym przypadku zawartość Label1 zmienia się na "Wcisnales ENTER!"

A teraz w czym rzecz. Przy wciśnięciu ENTER w jakimkolwiek Edicie słychać dźwięk sugerujący, że nie można użyć tu ENTERa.
Sprawdza się to kiedy nie ma przypisanego żadnego eventa, ale w przypadku powyższego kodu dźwięk nadal jest mimo tego, że kod się wykonuje.

Jeżeli ktoś nie rozumie w czym rzecz to tu przykład: http://www14.zippyshare.com/v/67300051/file.html

0

Przenieś to do OnKeyPress i ustaw Key na #0:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  // uwaga: Key jest tutaj charem
  if Key = #13 then
  begin
    Label1.Caption := 'Wcisnales ENTER!';
    Key:=#0;
  end;
end;
0

Nie rozumiem jak to działa, ale działa ;)
Wielkie dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1