![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| sashPav |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 8.7.2010 Репутация: нет Всего: нет |
Пожалуйста помогите разобраться.
Ниже приведен код программы Следующая программа вычисляет стоимость поездки на дачу. Исходными данными для программы являются: расстояние, цена одного литра бензина и потребление бензина на 100 км пути. Для ввода исходных данных применяются поля Edit1, Edit2 и Edit3. Функции обработки события OnKeyPress используют функцию IsFloat для фильтрации вводимых в эти поля символов, во время работы программы в полях ввода отображаются только допустимые символы. Диалоговое окно: ![]() Вопрос:программа успешно компилируется, но функция для фильтрации вводимых в поля символов IsFloat не работает, т.е. кроме цифр, можно набрать и буквы. Как заставить работать функцию? Работаю в Delphi® 2010
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
А почему не использовать стандартную функцию TryStrToFloat ?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Proxin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 21.6.2008 Репутация: 1 Всего: 3 |
или повесьте проверку на keypress, так правильней будет.
|
|||
|
||||
| PsiMagistr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Я обычно IntToStrDef() использую.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
| LoveMeCozImBLONDE |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| Proxin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 21.6.2008 Репутация: 1 Всего: 3 |
зачем сюда исключения пихать-то? val вполне от ошибок защитит.
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Proxin, каждый решил помериться тем, что знает, а на вопрос ТС никто не ответил
Предложу вариант:
* Copy/Paste это к сожалению не обрабатывает. Это сообщение отредактировал(а) Keeper89 - 11.7.2010, 17:13 |
|||
|
||||
| rytmix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
Как уже писалось ранее, правильнее проверять при наборе значений
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Правильнее? Ну приведите тогда Ваш правильный код ради интереса.
|
|||
|
||||
| de_Nis |
|
||||||||
![]() Старательный ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 19.10.2006 Где: Молдова Репутация: нет Всего: 6 |
Допустим, для работы программы DecimalSeparator должен быть "точка (например, в программах, работающих с AutoCad-ом: AutoCad не воспринимает другой символ в качестве десятичного разделителя).
Тогда в процедуре FormActivate д. б. указано:
Далее - один обработчик для всех Edit-ов:
Процедура разрешает ввод только цифр, не требует нажатия только клавиши "точка", допускает использование клавиши Backspace, не допускает ввод более одного десятичного разделителя. Если на событие KeyPress для конкретного Edit-а (например, для Edit3) нужно "повесить" еще что-либо, в коде изменяется строчка: вместо
должно быть
и теперь в процедуре для этого конкретного Edit3 можно дописать дополнительный код. Это сообщение отредактировал(а) de_Nis - 15.7.2010, 09:42 --------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет… |
||||||||
|
|||||||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |