|
|
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Леди и джентльмены! В форме есть текстбокс txtNomer. Пользователь заполняет его и пытается уйти с него на другой объект (табулятором, энтером - все равно). В LostFocus Event прописано: Код: plaintext 1. 2. 3. 4. Что прописала в коде не так? Благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:46 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
ЛисонькаЛеди и джентльмены! Благодарюиспользуй событие ::Valid() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:50 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
ну вообче та лучше в валиде прописать нешто IF LEN(alltRIM(this.value))<12 =MESSAGEBOX("Правильно введите номер!",48) RETURN .f. ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:50 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
ЛисонькаЧто прописала в коде не так?а если в твой код дописать NODEFAULT - че тогда будет ? может, повезет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:51 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
alex11100ну вообче та лучше в валиде прописать нешто IF LEN(alltRIM(this.value))<12 =MESSAGEBOX("Правильно введите номер!",48) RETURN .f. ENDIFа че толку серано это ::LostFocus() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:53 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
быть этого не могет если валид вернул фолс то он снего никуда не дернется не вжизнь хоть пристрели его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:55 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
alex11100хоть пристрели егоона же тусским по белому сказала : В LostFocus Event прописано: бла бла бла... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:56 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
У меня встречный вопрос. А если пользователю надоест бится лбом об стену? Ну не знает он какой номер должен быть "правильным"! Как он сможет прекратить это безобразие и закрыть форму? Ведь, чтобы закрыть форму, надо выйти из поля, а чтобы выйти из поля, надо знать "правильный" номер. Замкнутый круг. Может быть, логичнее выдавать это сообщение при попытке сохранить внесенные изменения? А до того, просто подсвечивать некорректное значение, например, красным цветом фона, но не запрещать переход на другой объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:58 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
ну это проблемы индейцев девушка не туда написала вот и грабли у нее проверку валидности нужно делать в валиде .... вот и все правила такие есть ходить нужно ровненько, ездить по правой стороне не кушать на-ночь и все - будет счастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 14:58 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
alex11100проверку валидности нужно делать в валиде ....нет, товаришчь чингачгук, ты неправ. проверку надо делать по окею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:02 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
иногда и коей проверяю по ... а иногда и по-окею не окейно такая она сложная и непонятная штука- жизня называется во как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:05 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Ох, понаписали всего до всего!! Буду отвечать попорядку. ALLTRIM можно, но не очень-то нужно - InputMask пробелы в начале не допустит. Перенсла код в Valid Не прошло, ошибка: Cannot call SetFocus from within a When, Valid и т.д. В справке написано, что SetFocus конфликтует с данными events. Как раз пользователи и просили ввести этот код, проверка стояла до этого именно в кнопке ОК. Им подавай сообщение об ошибке сразу. А выйти из пустого поля - я же прописала EMPTY()=.f. Раз верного номера нет - это проблема того, кто давал неверные сведения, пусть исправляется, оператор вносить такие данные не будет. И, раз девушка наступила-таки на грабли, то вы-то на что, джентльмены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:10 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
маску свою напишите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:17 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
маску какую Вы пишите сюда напишите я так понимаю счет для банк счета это будет так 999 99 999 9 9999 9999999 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:19 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
12 цифер это что счета 1-го 2-го и 3-го порядка просят вводить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:20 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
ЛисонькаПеренсла код в Valid Не прошло, ошибка: Cannot call SetFocus from within a When, Valid и т.д. В справке написано, что SetFocus конфликтует с данными events. Правильно написано. Только ведь не надо фокус никуда переводить. Если введено неправильно, то надо просто запретить ВЫХОД. Т.е. потерю фокуса. Для этой цели, внутри события Valid() и используется команда RETURN .F. или RETURN 0 В последнем случае не будет выскакивать системное сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:23 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
господа а не проще ли все это Код: plaintext 1. 2. 3. 4. сделайте так Лисонька Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:46 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Кстати Return не обязателен т.е. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:47 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
я написал пример выше - смотрите не делайте никаких сетфокусов Лисонька, вышлите маску я посмотрю нужно ли обходить чего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:51 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Лисонька, добрый день! Я бы поместил Ваш код в кнопку "ВВОД" или "Применить". Так будет правильней. Помещать его в Valid - это проявление неуважения к пользователю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 15:58 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Джентльмены, спасибо вам всем-всем-всем! И файл я посмотрела, и ответы ваши. Дело действительно лишь в том, что надо убрать в коде строку с SetFocus, а к RETURN добавть или .f. (но тогда выдается сообщение Фокса Invalid Input) или 0. Я просто не знала про эти атрибуты, а Help для RETURN читала давно. Не ругайтесь, что проверка у меня выполняется не при попытке сохранить данные, а при выходе их текстбокса, это просьба оператора - если что не так, ему остальные данные не вводить, но изначально проверка длины прописана была именно в коммандной кнопке ОК. 12 символов - это не банковский счет, до таких серьезных программ я никогда не дорасту. Просто летом грядет какая-то всеобщая деспансеризация, и с моей шефихи трясут списки работников, которые должны эту ...изацию проходить. Списки берутся их электронной картотеки. А в картотеке имеется такое поле, как номер страхового медицинского полиса. И как раз номер этот состоит из 12 символов. Еще раз благодарю всех. Елизавета Скрунскайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 16:46 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Ну почему бы и не в Valid? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. И если пользователь сказал "Всё окей", то условие ln_Answer = 7 не выполняется и мы спокойно выходим из валида ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 22:01 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Hi alex11100! > проверку валидности нужно делать в валиде .... А я категорически против таких манёвров. Убогий это обработчик, жестокий донельзя, ни тебе SetFocus потом попользоваться (а может я хочу при неправильном вводе высветить свою форму со списком "правильных" вариантов?), ни нормального способа закрыть форму, ни нажать кнопку "Отмена" (IMHO такую кнопку юзер должен иметь возможность нажать ВСЕГДА). Уж если и писать, то в LostFocus - но там надо добавить NODEFAULT, и убрать SetFocus (он лишний будет). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 01:32 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И если пользователь сказал "Всё окей", то условие ln_Answer = 7 не выполняется и мы спокойно выходим из валида Так можно, но у пользователей должна быть возможность включать/отключать такой режим по собственному желанию (ИМХО) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 12:49 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Свою форму из валида -- как раз запросто :) А вот с остальным я согласен на все 100% :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 12:50 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Doktor GradusНу почему бы и не в Valid? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. И если пользователь сказал "Всё окей", то условие ln_Answer = 7 не выполняется и мы спокойно выходим из валида Тоже ИМХО Не, это тормоза для пользователя. Кажный раз отвечать ажур или не ажур морда тресне. А еси у него таких txtbox'ов 3 штуки? 10? 20? Не, господа, скорость внесения данных для оператора это один из важных критериев работы. Что сразу предоложил Alex11100 это и надо использовать: IF LEN(alltRIM(this.value))<12 =MESSAGEBOX("Правильно введите номер!",48) RETURN .f. ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 17:04 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Так ведь месаджбокс вываливается, только если оператор неправильно что-то ввёл. А если он всё ввёл правильно, то ничего.... молча играем дальше. Здесь проблема в том, на что согласен оператор (если у нас есть возможность контактировать с оператором во время разработки приложения). Если он хочет, чтобы сразу по выходе из текстбокса вылезал месаджбокс, то и делаем сразу. Если его устраивает вариант по кнопке "Дальше/Сохранить/и т.п.", то так и делаем. Можно сделать оба варианта и предлагать пользователю в настройках установить нужный. Мои пользователи часто хотят не только проверку по выходе из текстбокса, но ещё, чтобы и месаджбокс при неверном вводе был нестандартный. То есть приходится рисовать свою форму - аналог мессаджбокса (как правило, речь идёт о том, чтобы увеличить шрифт, изменить цвет сообщения и прикрутить свой набор кнопок вместо стандартных Yes/No/Cancel/OK). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2006, 19:44 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Doktor GradusТак ведь месаджбокс вываливается, только если оператор неправильно что-то ввёл ..... То есть приходится рисовать свою форму - аналог мессаджбокса (как правило, речь идёт о том, чтобы увеличить шрифт, изменить цвет сообщения и прикрутить свой набор кнопок вместо стандартных Yes/No/Cancel/OK). Согласен, что нектоорые месаджи нужно особо выделить для пользователя, но здесь идет речь о рутинной работе, 12 знаков я так понял обязательны. А если обзательны, то достаточно пользователю просто сообщить о его ошибке\описке. И всеже повторю - это ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 09:04 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
О_В_Д А когда сообщать? И где? Фирменный wait window фокса далеко не все воспринимают как что-то полезное. Скорее, наоборот, как досадную помеху. Многие вообще его не замечают. И удивляются, чего это программа брыкается вдруг. О_В_Дно здесь идет речь о рутинной работе В таких случаях я обычно подсвечиваю BackGround самого текстбокса: красный -- пока он не заполнен, как положено, зелёный -- всё в порядке, можно покинуть текстбокс. Пользователи в восторге. Валид отдыхает, все проверки, ессно, в InteractiveChange или KeyPress. И сразу видно, что к чему. Где ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 21:00 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Забыл добавить -- я не настаиваю на своих решениях. Потому как, имею возможность (и пользуюсь ею) договориться с пользователем -- что, где и как. Где достаточно подсветить, где проверка при нажатии кнопки, а где и жёсткий валид. Просто, на мой взгляд, применять валид имеет смысл там -- где ошибка -- фатальна . Не в том смысле, что смертельна, а в том смысле, что может иметь весьма неприятные последствия в плане материальных и моральных затрат. Я не знаю, как в данной задаче у Лисоньки, но полагаю, что неполностью ввести "номер страхового медицинского полиса", это всё равно, что его не ввести совсем. Но здесь как раз достаточно подсветки объекта зелёным, если длина в порядке. Потому что соответствие введённых циферок написанным на бумаге проверить программным путём... Ну, разве что сканером, и то не факт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 21:19 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Джентльмены, да хватит вам перья ломать да клавиатуру впустую долбить! Да какая разница, как указать пользователю на его ошибку? Главное - достоверность информации. Ну вот сделала я сегодня и в Valid, и в LostFocus, и с сообщением, и без. И что толку? Шефиха моя (эх, когда-то подругами слыли, я у ней 10 лет назад свидетельницей на свадьбе была!) вообще осталась недовольна, мол на всякую ерунду время трачу (знал бы ее муж как она его деньги тратит!). Одни пользователи ратуют за сообщения об ошибках, как ранее было - при попытке сохранения, другие млеют от Valid'а - минуты по две сидели и тупо специально делали ошибки, наслаждаясь выскакивающим Message. Типа пытались машину обмануть? А потом начали просить, чтобы у каждого было так, как ему понравилось. Я разозлисась и вообще сделала откат проги к прошлой неделе. Они шум подняли: "Вот, ходит, место чужое занимает, сама толком ничего не может!!" Вот делай людям добро после этого... (((((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 22:37 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
Hi Doktor Gradus! > Свою форму из валида -- как раз запросто :) Дело не в самом вызове формы, а в том что та форма вполне себе может в какой-то момент вызвать SetFocus (а отказаться от использования этого метода ВЕЗДЕ - это практически нереально) - тут то фокс и припомнит нам откуда мы форму вызвали... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 02:16 |
|
||
|
Фокус не остается на объекте
|
|||
|---|---|---|---|
|
#18+
авторДело не в самом вызове формы, а в том что та форма вполне себе может в какой-то момент вызвать SetFocus (а отказаться от использования этого метода ВЕЗДЕ - это практически нереально) - тут то фокс и припомнит нам откуда мы форму вызвали... Отож. Подобная ситуация вынудила отказатся от Valid-ов и все проверки перенести в LostFocus, а решение о переходе или возврате принимать в GotFocus-е. Для однообразия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 09:26 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592200]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 426ms |

| 0 / 0 |
