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

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

Edit не принимает цифр [D6, WinXP]


Страницы:   1 2

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 := '.'; //разделитеь дроби т.е точка или запятая
Попробуй поставь '.' или ',' должно получится.


Страницы:   1 2

Наверх

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