|
Модераторы: Akina |
|
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
В VB нужно сделать запрет на ввод любых данных , кроме чисел. До этого пользовался IsNumeric. А сейчас не подходит, так как эта функция блокирует дробные числа, разделенные точкой, считая их не цифрой. А у меня в проекте для удобства пользователей дробные можно вводить с точкой или с запятой. Заранее спасибо!
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Первый вопрос - когда выполняется проверка? при каждом изменении поля или только при потере фокуса?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Вводится значение в текстовое поле и когда нажимается на кнопку, идет проверка. Т.е. получается при потере фокуса
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Ну так пишите в методе потери фокуса код валидации введённого значения. Если валидация не прошла - выбрасывайте сообщение и возвращайте фокус на поле ввода.
Валидация-то получается элементарная. Копируем введённый текст в переменную, заменяя запятую на точку (или наоборот - зависит от региональных установок). Проверяем переменную на Isnumeric. Всё. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Ой а можно для особо одаренных)) Дело в том что я с VB на вы и шепотом((( Поэтому эти все терпины-валидация и т.д. мне не знакомы((( Можно более простым языком пожалуйста
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Ну типа
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Объясните пожалуйста эти строчки:
просто хочется понять смысл а не тупо копировать и вставлять |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
http://msdn.microsoft.com/en-us/library/aa...6(v=vs.60).aspx
http://msdn.microsoft.com/en-us/library/aa...3(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa...0(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa...2(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa...2(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa...2(v=vs.60).aspx -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Что такое Isnumeric я знаю и уже разобрался с Mid. Что делает Cstr ??? не могу понять
Неужели все так сложно и нельзя допустим при нажатии на кнопку проверять что находится в текстовом поле((. Может можно обойтись без этих потерь фокусов |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Сайт я не ленюсь прочитать. Англ. плохо знаю , пошел в настройки языка сайта, изменил на русский написали что данная страница не доступна на русском.
Написано что возвращает строковую переменную! Ну и что? я хочу понять смысл строки
Например при
Это я понял. Но что тут делает Cstr(1.1) Сайт я не ленюсь прочитать. Англ. плохо знаю , пошел в настройки языка сайта, изменил на русский написали что данная страница не доступна на русском. |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Берёт ЧИСЛО 1.1 и преобразовывает его в СТРОКУ. При этом использует региональные настройки текущего пользовательского профиля. А потом Mid берёт из результата 1 символ, начиная со 2-го символа получившейся строки. Что именно он берёт и нахрена - ну уж попробуй догадаться... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Akina, Спасибо что не послали! И за потраченное время! Разобрался. Вот как бы я объяснил :- Cstr(1.1) показывает что 1.1 это строка, т.е. "1,1" , Соответственно Mid выбирает из 1,1 один символ, начиная со второго, т.е берет "," и присваивает это значение переменной GD(сокращенно). Затем делается выбор GD При GD="," присваиваем переменной BD значение "." И замет когда Text1.text теряет фокус делаем проверку число ли там и тут же меняем точку на запятую.
У меня только 2 вопроса ) Опять чисто из интереса))) 1)В каком случае отработает ???
2)Почему бы ваш код не записать в таком виде, может я не прав, но мне кажется тогда мы просто избегаем этих выборов и лишних присвоений.
|
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Это на случай непредусмотренной национальной кодировки. Вдруг найдётся умник, который в качестве разделителя влепит, например, символ доллара? Представьте, что код попал на станцию, где установлена аглицкая национальная кодировка. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Ну вы написали код на все случаи жизни))) Ну а если взять во внимание что будет работать только на рускоязычных виндах, тогда все отработает по идее нормально |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
vdekameron, речь идёт о реакции программы на интерактивное взаимодействие с пользователем. А по сравнению с программой, даже если пальцы летают по клавиатуре, юзер - безнадёжнейший тормоз. И горсть лишнего кода (кстати, не такая уж и большая) на скорость работы никак не повлияет.
Зато появится уверенность, что если, допустим, шеф завтра припрётся со своим ноутом, на котором немецкая, скажем, винда - у программы всё равно проблем не возникнет. Вот в расчётную часть я бы никаких дополнений не пихал. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
vdekameron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 15.12.2014 Репутация: нет Всего: нет |
Спасибо!
|
|||
|
||||
windcastle |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.2.2015 Репутация: нет Всего: нет |
||||
|
||||
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |