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

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

Обработчик событий 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


Наверх

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