powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Valid в Spinner
11 сообщений из 11, страница 1 из 1
Valid в Spinner
    #34827524
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.
Столкнулся с проблемкой: есть два спиннера (минимальное и максимальное значение)
и простенькая проверка на непривышение минимального значения над максимальным.
вот когда мин>макс выдает сообщение об ошыбке (сообщение из errormessage)
А теперь суть проблемы - оно еще требует нажатия пробела, причем это я увидел только при отладке, когда прога работает этого сообщения нету и ненажав пробел ничего невозможно сделать. как это обойти?
Всем спасибо
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827633
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А где происходит проверка на правильность ввода (в каком событии спиннера)? Если в событии Valid, то оно происходит только перед потерей фокуса.
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827702
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверка в Valid
iif(max < min,return .f.,return .t.)
я сделал новую форму и поместил на нее 2 спинера - при ошибке відает мое сообщение а затем в правом верхнем угла маленькое окошко с текстом "invalid input" и фокус возвращается в спиннер.
а в програме этого окошка нету и надо жать пробел
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827730
авторiif(max < min,return .f.,return .t.)
И че только люди не удумают... Возврат прямо из вычисляемого выражения... Да еще по результату логического выражения прописываем отдельно логический же результат... Жуть...

Код: plaintext
Return not max < min
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827753
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.[quot автор]iif(max < min,return .f.,return .t.)
И че только люди не удумают... Возврат прямо из вычисляемого выражения... Да еще по результату логического выражения прописываем отдельно логический же результат... Жуть...

но ведь работает... или есть какие-то "подводные камни"?
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827928
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вроде бы нет ни каких подводных каней. Как я и говорил в Valid проверка будет происходить только после нажатия интер или пробел, таб и т.д. Если заранее знать размерность чисел, то можно организовать проверку на уровне interActiveChange, это будет интересней.
Например размерность = 2знакам
IF LEN(ALLTRIM(STR(This.Value)))=2
&& Проверк на вшивость
ENDIF
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827938
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. А маленькое окошечко выскакивает потому что из валид возвращается F. Посмотри Help там всё написано...
...
Рейтинг: 0 / 0
Valid в Spinner
    #34827991
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чета сразу не подумал:
В Spinner1- InterAcniveChange
ThisForm.Spinner2.KeyBoardLowValue=This.Value
ThisForm.Spinner2.SpinnerLowValue=This.Value
А второй спайнер Enabled=.F. если значение первого =0!
Вот и вся поверка!!!!!
...
Рейтинг: 0 / 0
Valid в Spinner
    #34829130
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да суть не в том как сделать проверку... а как исправить значение спинера когда ввел неправильное значение.
когда просто создал форму и встувил спинер, после ввода неверного значения выдает сообщение "invalid input" и возвращает указатель в спинер для исправления значения.
у меня в проге НЕ выдает этого окошечка а возвращает курсор в спинер и требует нажатия пробела (причем фраза "press Spacebar" выдается в самом низу экрана на сером фоне и видно ее только в режиме отладки) потому пользователь пытается исправить значение... а оно типа висит пока ненажмеш пробел.
Вот в чем проблема
...
Рейтинг: 0 / 0
Valid в Spinner
    #34829638
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, Вам следовалы бы почитать HELP по событию Valid и реакции объекта на то, что возвращает это событие. Но, поскольку еще никто никогда HELP не читал, то, вкратце:

RETURN .T. - штатный выход из объекта и переход на следующий или предыддущий объект (в зависимости от способа выхода)
RETURN .F. - блокирует выход из объекта и появляется сообщение "Invalid Input"
RETURN 0 - блокирует выход из объекта, но никаких сообщений об ошибках не появляется
RETURN N - здесь N - это целое число. Положительное или отрицательное. Штатный выход из объекта и переход на объект у которого значение TabIndex отличается на N от значения TabIndex данного объекта.

Исправить значение на корректное можно там же, в событии Valid.

Однако поскольку Вы сравниваете значение двух объектов, то исправлять значение или блокировать выход из одного из них - бессмысленно. Ведь неизвестно значение в каком объекте надо исправлять. В том, где Вы сейчас находитесь или в другом.

Поэтому, логично повесить подобную проверку на кнопку "Сохранить" и там выдавать сообщение вроде "Минимальное значение больше максимального!"
...
Рейтинг: 0 / 0
Valid в Spinner
    #34830129
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо Владимир. Я всегда ценю вашу помощь.
И сейчас, ваша идея перенести проверку в кнопку "сохранить" - весьма удачна.
А хелп - я читал, и прописал в valid return .f. дабы окошко с ошыбкой показать, но оно не появляется... :( ну и ладно, перенесу проверку и дело с концом.
Всем спасибо
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Valid в Spinner
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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