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

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

Назначить edit2 событие onKeyPress edit1 [D6, WinXP]


Gurd ©   (2008-10-14 19:01:00) 

Процедура обрабатывает событие onKeyPress edit1 и в ней проверяется ввод запятой, когда я и в инспекторе присваиваю edit2 событие EditKeyPress, то ввод запятой он проверяет в edit1, а не как надо в edit2 потому как в процедуре pos запятой проверяется в edit1.
Как изменить процедуру, что бы она срабатывала для каждого edit правильно?

procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ',' then
Key := DecimalSeparator; // запятую заменяем на разделитель для числа
if Key = '.' then
Key := DecimalSeparator; // точку заменяем на сепаратор (на всякий случай)
if not (Key in ['0'..'9',DecimalSeparator,#8,#13]) // символы которые пропускаются
or ((Key = DecimalSeparator) // все цифры знак минус разделитель
and (POS (DecimalSeparator, Edit.Text) > 0)) // запрет на второй сепаратор
then
begin
Key := #0; // запрещенный символ заменяем нулем
MessageBeep (MB_OK); // биб в спикир
end;


Gurd   (2008-10-14 19:23:00) [1]

Спасибо за помощь! :-)


Германн   (2008-10-14 19:21:00) [2]

and (POS (DecimalSeparator, TEdit(Sender).Text) > 0))


Наверх

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