![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Edit не принимает цифр [D6, WinXP]
dido © (2004-07-07 02:00:00)Вот кусок кода:
var
mzp_:real;
begin
mzp_:=StrToFloat(Edit1.Text);
При вводе цифры в Edit появляется сообщение
"is not a valid floating point value".
В чем дело и как исправить?
Anatoly Podgoretsky (2004-07-07 16:08:00) [1]KADAN © (07.07.04 15:40) [24]
Вот ты умеешь подавлять сообщение, а он явно нет, это конечно при условии что есть обработчики.
KADAN (2004-07-07 15:40:00) [2]
> Anatoly Podgoretsky © (07.07.04 15:23) [23]
> И будет очень часто "is not a valid floating point value".
вот на еррор-то и отключается буттон... (в трай-ексепте)
либо Val если не охота с еррорами возиться :)
Anatoly Podgoretsky (2004-07-07 15:23:00) [3]KADAN © (07.07.04 15:04) [22]
И будет очень часто "is not a valid floating point value".
KADAN (2004-07-07 15:04:00) [4]Anatoly Podgoretsky © (07.07.04 14:45) [20]
Почему же? OnChange вызывается только после того как текст изменился. Я например использовал это для проверки правильности ввода числа в эдит (подозреваю что и здесь такая же ситуация) и включал/отключал btnOK. По мне, так очень удобно.
MacroDenS (2004-07-07 14:47:00) [5]Работай через OnKeyPress
Anatoly Podgoretsky (2004-07-07 14:45:00) [6]KADAN © (07.07.04 14:30) [18]
Наоборот советую убрать оттуда
MacroDenS (2004-07-07 14:36:00) [7]
Так разреши в Edit вводить только 0..9; ','; '-' - и никаких
проблем
Да и не забудь еще #8 (бэкспэйс), также при вводе лучше отслеживать нажатие знака "-", что бы он был в первой позиции.
KADAN (2004-07-07 14:30:00) [8]воветую перевести в OnChange
KADAN (2004-07-07 14:29:00) [9]а может это просто делается в событии OnKeyDown и не надо было демагогию разводить?
Anatoly Podgoretsky (2004-07-07 14:24:00) [10]Подозреваю что это в обработчике OnChange
ssk (2004-07-07 14:03:00) [11]вот когда-то писал наследника. попробуй. это Edit для ввода целых и десятичных чисел. десятичный разделитель определяется автоматически. имеется функция размещения вводимого текста. также можно установить точность ввода после дес.разделителя.
www.ucad.pisem.net/sskeditflint.zip
GEN (2004-07-07 14:00:00) [12]>MIGUR (07.07.04 02:36)
>А теперь я в твой Edit число с точкой введу.
Так разреши в Edit вводить только 0..9; ','; '-' - и никаких
проблем.
_ALEXey_ (2004-07-07 10:52:00) [13]Как исправить:
1. Использовать TMaskEdit;
2. Самому писАть функцию проверки формата числа;
3. Загнать конвертацию в Try...Except...
Ega23 (2004-07-07 09:26:00) [14]MIGUR (07.07.04 02:36) [11]
А теперь я в твой Edit число с точкой введу. :о)
MIGUR (2004-07-07 02:36:00) [15]Теперь всё должно работать:
var
mzp_:real;
begin
DecimalSeparator := ',';
mzp_:=StrToFloat(Edit1.Text);
end;
ВСЁ OK!
Andy BitOff (2004-07-07 02:34:00) [16]
>MIGUR (07.07.04 02:33) [8]
>Что он у тебя непоказывает???
ВОТ ИМЕННО!!!
Andy BitOff (2004-07-07 02:33:00) [17]Ладно, чего-то я разошелся, извиняйте. Просто надо давать более поную информацию. Например:
Вот кусок кода:
var
mzp_:real;
begin
mzp_:=StrToFloat(Edit1.Text);
При вводе числа 123,434в Edit появляется сообщение
"is not a valid floating point value".
В чем дело и как исправить?
MIGUR (2004-07-07 02:33:00) [18]Что он у тебя непоказывает???
Andy BitOff (2004-07-07 02:28:00) [19]Так, а он ни чего и не дал, кроме рабочего кода :)
------
Подскажите, у меня лабел не показывает.
begin
Label1.Caption:='Вася';
end;
MIGUR (2004-07-07 02:27:00) [20]Уменя была подобная проблема, при вводе цифр все нормальо но если ставлю число с десятичной точкой, то вылетает с ошибкой точно непомню но вроде с такойже.
Решил так:
DecimalSeparator := '.'; //разделитеь дроби т.е точка или запятая
Попробуй поставь '.' или ',' должно получится.