Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо