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

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

В Edit только числа... [D7, WinXP]


killer ©   (2004-07-08 00:27:00) 

Как можно сделать так, чтобы в Edit можно было вводить только целые и вещественные числа? Т.е. допустимые символы это: "0" "1" 2 "3" "4" "5" "6" "7" "8" "9" ","...


Amoeba   (2004-07-08 11:38:00) [1]

Есть и готовые компоненты. Поищи на http://www.torry.net


KilkennyCat   (2004-07-08 01:29:00) [2]


> Palladin ©   (08.07.04 01:26) [13]


Все свежее - хорошо протухшее старое :)


KilkennyCat   (2004-07-08 01:26:00) [3]


> MIGUR   (08.07.04 01:23) [11]


Если придраться :) нет разрешения курсора, да и удалять можно двумя клавишами...


Palladin   (2004-07-08 01:26:00) [4]

Свежая мысль...


MIGUR   (2004-07-08 01:23:00) [5]

Попробуй так, отлавливая нажатия клавиш:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if    NOT (Key in ('0'..'9', '.', #8, #13)) // разрешенные клавиши
OR (    (Key = '.')                  // пользователь нажал '.'
AND (POS ('.', Edit1.Text) > 0)) // десятичная точка уже имеется
then
begin
Key := #0;
MessageBeep (MB_OK);
end;
end;


KilkennyCat   (2004-07-08 01:19:00) [6]


> killer ©   (08.07.04 01:15) [8]


два варианта: проверить буфер и запретить, если не соответсвует. проверить в событии ончейндж и запретить, если не соответствует.


Palladin   (2004-07-08 01:18:00) [7]

Отлавливай WM_PASTE... в TEdit ессно...


killer   (2004-07-08 01:15:00) [8]

из буфера в смысле...


killer   (2004-07-08 01:14:00) [9]

А если вставят текст?


KilkennyCat   (2004-07-08 01:07:00) [10]


> killer ©   (08.07.04 00:35) [2]


маска не всегда красива... в принципе, маска удобна лишь для ввода строгих форм.


Palladin   (2004-07-08 01:04:00) [11]

key:=#0;


killer   (2004-07-08 00:51:00) [12]

например я пишу....

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key<>'0') and и т.д. then что тут писать?;
end;


killer   (2004-07-08 00:47:00) [13]

А как запретить ввод других символом? какой фонкцией запретить приписывать наподходящие символы?


killer   (2004-07-08 00:35:00) [14]

KilkennyCatэто два способа? Я думаю первый лучше... Т.к. во втором надо еще определять такие кнопки как Delete, BackSpase...


KilkennyCat   (2004-07-08 00:30:00) [15]

1) использовать маску
2) запретить в событии кейпресс ввод друкгих символов.


Наверх

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