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

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

создание цифрового TEdit [D5, Win95/98]


pirat ©   (2002-10-14 21:43:00) 

Всем привет!
Понадобилось мне, чтоб в TEdit можно было вводить только цифры. Решил перехватить WM_CHAR и отфильтровать только нужные мне символы. Попробовал подменить WndProc - ноль результатов.
Как же все таки это сделать???


PKT   (2002-10-15 03:45:00) [1]

А может быть в лоб проблемку решить ?
Если числа еще и в форме 1Е-10 вводятся, то надо
еще код раздувать

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [#8, DecimalSeparator, "0".."9"]) or
((Key = DecimalSeparator) and
(Pos(DecimalSeparator, TEdit(Sender).Text) <> 0))
then Key := #0;
end;


Dr_Mike   (2002-10-15 02:13:00) [2]

Сомнения меня одолевают по поводу вышесказанного - если например, я буду вводить 1234.1234.2.4 - это что, тоже число будет ?

Не проще ли анализировать уже готовое число после ввода, и при неудачной проверке опять возвращаться к вводу ?


pirat   (2002-10-14 23:01:00) [3]

Сорри, забыл ведь главное сказать :((
Я в нее хотел вводить числа в формате double/real/float

Так что TSpinEdit не подходит
ES_NUMBER счас проверю
KeyDown вызывается после, а не перед (разве не так?)


Юрий Зотов   (2002-10-14 22:10:00) [4]

Мы не сговаривались, честное слово!
:о)


Юрий Зотов   (2002-10-14 22:08:00) [5]

SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);

И все.


TTCustomDelphiMaster   (2002-10-14 22:06:00) [6]

SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);


down   (2002-10-14 21:53:00) [7]

Подменить KeyDown: если Key <> цифре, то Key := 0


VID   (2002-10-14 21:49:00) [8]

Вообще-то не грех и TSpinEdit использовать, который лежит на странице Samples :)


Наверх

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