![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по TSpinEdit.OnKeyPress [D5, Win2k]
Дельфятник © (2002-10-15 15:33:00)Почему-то это событие не ловит нажатие клавиши Enter - то есть по нажатию на Enter программа не вызывает обработчик события TSpinEdit.OnKeyPress. Это у всех так, или это только у меня руки кривые?
Дельфятник (2002-10-15 16:12:00) [1]Теперь я всё понял:
procedure TSpinEdit.KeyPress(var Key: Char);
begin
if not IsValidChar(Key) then
begin
Key := #0;
MessageBeep(0)
end;
if Key <> #0 then inherited KeyPress(Key);
end;
function TSpinEdit.IsValidChar(Key: Char): Boolean;
begin
Result := (Key in [DecimalSeparator, "+", "-", "0".."9"]) or
((Key < #32) and (Key <> Chr(VK_RETURN)));
if not FEditorEnabled and Result and ((Key >= #32) or
(Key = Char(VK_BACK)) or (Key = Char(VK_DELETE))) then
Result := False;
end;
Дельфятник (2002-10-15 16:05:00) [2]Поставил у формы KeyPreview := True и ничего не изменилось.
Zemal (2002-10-15 15:59:00) [3]А ты в форме поставил "KeyPreview := True"? Поставь...
Дельфятник (2002-10-15 15:54:00) [4]Да, это понятно, что для ловли нажатия Enter"a для TSpinEdite"a надо использовать OnKeyDown (OnKeyUp). Вопрос был в другом.
AL2002 (2002-10-15 15:38:00) [5]Может, OnKeyDown?