![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработчик событий OnKeyPress [D7]
Igor_ © (2004-09-23 22:19:00)Нада сделать компонент типа Edit'a, только чтобы он реагировал на нажатие определённых клавиш, например только на цифры. Подскажите плз как в своём компоненте изменить OnKeyPress
Igor_ (2004-09-26 10:38:00) [1]Спасибо, помогло
P.N.P. (2004-09-25 21:01:00) [2]>Igor_ (25.09.04 14:56) [2]
type TNumberEdit = class(TEdit)
public
procedure CreateParams(var Params: TCreateParams); Override;
....
procedure TNumberEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_NUMBER;
end;
xmrz (2004-09-25 15:48:00) [3]Пример обработчика отсекающего все цифры, '*', '?' и '.'
procedure TForm1.MyEditKeyPress (Sender: TObject; var Key: Char);
begin
case Key Of
'1'..'9', '*', '?', '.' : Key := #0;
end;
end;
Такой же можно встроить и в компонент переопределив процедуру KeyPress родителя.
Igor_ (2004-09-25 14:56:00) [4]>Это делается и без KeyPress - в CreteParams флаг ES_NUMBER
А можно с огрызком кода плз, а то я не совсем понял что за CreteParams.
GuAV (2004-09-24 00:25:00) [5]нужно НЕ изменить OnKeyPress, а override KeyPress.
> например только на цифры
Это делается и без KeyPress - в CreteParams флаг ES_NUMBER