powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отменить VALID
6 сообщений из 6, страница 1 из 1
Как отменить VALID
    #32705616
Sas_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Прошу помощи в следующем вопросе:
Имеется форма построенная на основе курсора - в ее составе несколько texboxов имеется кнопка "НОВАЯ" при нажатии которой возникают пустые значения для TexBoxов, на некоторые из них повешано Valid event для обеспечения контроля значений вводимых пользователем, вопрос собственно в следующем, как по кнопке "Отмена" - отключить Valid event для контролируемых TexBoxов?
Заранее благодарен.
...
Рейтинг: 0 / 0
Как отменить VALID
    #32705634
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В методе Valid должен быть код вроде:

IF ThisForm.Property=...
* Делаем проверку
ELSE
RETURN .T.
ENDIF

Т.е. на форме создаешь пропертю и по кнопке "Отмена" меняешь ее значение.

Если TextBox-ы созданы на основе собственных классов, то такую пропертю вставляй непосредственно в TextBox и меняй ее значение через ThisForm.SetAll()

Хотя, лично мне представляется навешивание Valid на каждый контрол не очень хорошей идеей. Лучше вынести сохранение на отдельную кнопку "Сохранить" и все необходимые проверки делать там.
...
Рейтинг: 0 / 0
Как отменить VALID
    #32705696
Sas_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответ:
Дело в том, рад бы я воообще ничего не вешать на TexBox - но пользователи не очень грамотные и навтыкают в базу такого - что потом век не расхлебать.
Есть конечно и кнопка "Сохранить" - но на мой взгляд, когда вводимых полей много (8-12) лучше их сразу контролировать, чтоб было ясно например, что ИНН дестизначный, а имя Перевозчика не может быть пустым и т.д.
еще раз благодарю за оперативную помощь
...
Рейтинг: 0 / 0
Как отменить VALID
    #32705765
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел в виду следующее:

Контроль в Valid должен быть рекомендательным, а не запретительным. Т.е. пользователь забыл ввести какое-то значение и при выходе из поля ты ему вывешиваешь напоминание: "Забыли ввести. Повторить ввод?".

В противном случае, ты можешь вообще никогда не попасть на кнопку "Отменить"! Чтобы ее нажать, нужно сначала покинуть TextBox, а ты этого сделать не можешь. Valid не пускает!

Ну, и разумеется, дополнительный контроль по кнопке "Сохранить". Вот здесь контроль уже запретительный. Забыли ввести - фокус на объект и ждем пока введет значение.

PS: ИНН может иметь до 12 символов.
...
Рейтинг: 0 / 0
Как отменить VALID
    #32705808
Sas_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо принимается - спасибо за советы.
...
Рейтинг: 0 / 0
Как отменить VALID
    #32707695
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Valid необходимо добавить проверку того, над каким элементом управления
находится куазатель мыши - если над кнопкой "Отмена", то проверку не
проводить, а тихо мирно покинуть контрол. Т.е. тогда _можно_ будет хоть
как-то выйти из контрола...
Также можно проверить Lastkey() на предмет кода esc (27) - это тоже хороший
повод не проводить проверку. Причём если для кнопки "Отмена" установлено
свойство Cancel = .T. то и кнопка автоматом нажмётся...

Ну и конечно совет Владимира о более мягком проведении проверки. Есть масса
способов показать пользователю что он ошибся, но тем не менее не блокировать
его работу: Покрасить контрол в другой цвет, Вывесить немодальное
окошко-предупреждение, поменять Tooltp на содержащий описание проблемы и
т.п.

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отменить VALID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]