Ввод данных в объект Edit

Доброго времени суток. Решил сделать пока вот так:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);beginIf not (Key in [',','0','1','2','3','4','5','6','7','8','9']) then Key:=#0;end;
Но нужно ещё обрабатывать клавишу Back_Space и Space. Как это сделать ?
14 ответов

  If not (Key in [',','0','1','2','3','4','5','6','7','8','9',#8,#32]) then Key:=#0;
Вот так попробуй.


Посоветую нажать на кнопку поиск и вести там хотя бы "Edit1KeyPress"Тема фильтрации цифровых значений - баян.Почему вешать на онкей нельзя, даже пояснять не буду - ибо баян.


Спасибо, SuperVad.


 If not (Key in [',','0'..'9',#8,#32]) then Key:=#0;
и еще разделитель десятых может быть и "." а не "," -


и еще разделитель десятых может быть и "." а не "," - 
If not (Key in [DecimalSeparator,'0'..'9',#8,#32]) then Key:=#0;


можно еще дальше пойти ))
If not (Key in [DecimalSeparator,'0'..'9',#8,ThousandSeparator]) then Key:=#0;


Ну, вообщем-то, мне нужно чтобы ',' была разделителем. Я потом с этим числом работаю и графики строю. Спасибо, друзья.


А теперь скопируй свой код и вставь в свой Edit...


А теперь скопируй свой код и вставь в свой Edit... 
Sectoid, это к тому что вставку Ctrl-V ты не запретишь.Вобщем, как и сказали:
Тема фильтрации цифровых значений - баян.Почему вешать на онкей нельзя, даже пояснять не буду - ибо баян. 
Скажу от себя - не только ОнКей придется обрабатывать.


если не уверен в своих силай используй курренси едитор - он почти в любой библиотеке есть. (devexp, jedi и др.) можешь заодно посмотреть как там это дело реализовано.


Sectoid, это к тому что вставку Ctrl-V ты не запретишь.
В моей программе (технические расчеты), кроме проверки Edit1KeyPress, подобной приведенной в этой теме (ввод только цифр, определенного десятичного разделителя), дополнительно проверяется, чтобы в Editе не было "пустого" поля или только десятичного разделителя. Никаких специальных запретов для вставки символов с помощью Ctrl-V  я не делал. Сейчас для интереса запустил программу, в Блокноте набрал строки из цифр, из букв, из смеси букв и цифр, и пытаюсь вставить в поле ввода программы с помощью Ctrl-V. Не вставляется. Запустил еще одну свою программу - та же история: не вставляются никакие символы с помощью Ctrl-V. Вставляю в другой файл Блокнота (для контроля) - вставляется, как и должно быть. Что скажете?   


Что скажете?
а если из буфера обмена попытаться вставить в ваш Edit "правильные" данные? Думаю, что:
Не вставляется.
и так должно быть?


Из обсуждения темы я понял, что вставку данных с помощью Ctrl-V нужно каким-то специальным образом запрещать и удивился, что в мои программы не вставляется, хотя я ничего для этого при написании программ не делал.P. S. "и так должно быть?" Исходные данные для программ получают не расчетом, а обмером реальных объектов, так что из буфера обмена вставлять в Edit ничего не нужно. 


Из обсуждения темы я понял, что вставку данных с помощью Ctrl-V нужно каким-то специальным образом запрещать и удивился, что в мои программы не вставляется, хотя я ничего для этого при написании программ не делал.
Владелц темы, похоже, отвалился и мы до конца не знаем, что реально нужно.
P. S. "и так должно быть?" Исходные данные для программ получают не расчетом, а обмером реальных объектов, так что из буфера обмена вставлять в Edit ничего не нужно.  
А если в вашей проге оператору понадобится взять данные из едита (такого же) другой формы и скопировать в едит текущей? Например, оператору надо внести (а раз вы обрабатываете OnKeyPress, значит он вносит) число 1000000000000000000009, которое он увидел где-то. В таком случае ИМХО лучше довериться Ctrl-V.А у вас он не работает.