Как заставить TEdit не пикать при нажатии недопустимых клавиш?
Falk0ner, вс, 06/07/2008 - 15:34.
Перехватите событие KeyPress и установите key = #0 для недопустимых клавиш.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((UpCase(Key) < 'A') or (UpCase(Key) > 'Z')) then Key := #0;
end;
begin
if ((UpCase(Key) < 'A') or (UpCase(Key) > 'Z')) then Key := #0;
end;
Взято из http://forum.sources.ru
// Either disable the Beep in the OnKeyPress handler:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then // #13 = Return
begin
key := #0;
// Code...
end;
end;
// Or in the OnKeyDown-Handler:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Mgs: TMsg;
begin
if Key = VK_RETURN then
PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then // #13 = Return
begin
key := #0;
// Code...
end;
end;
// Or in the OnKeyDown-Handler:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Mgs: TMsg;
begin
if Key = VK_RETURN then
PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
end;
Взято с сайта: http://www.swissdelphicenter.ch
Отправить комментарий