powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фокус не остается на объекте
25 сообщений из 34, страница 1 из 2
Фокус не остается на объекте
    #33558491
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леди и джентльмены!
В форме есть текстбокс txtNomer. Пользователь заполняет его и пытается уйти с него на другой объект (табулятором, энтером - все равно). В LostFocus Event прописано:
Код: plaintext
1.
2.
3.
4.
IF EMPTY(this.value)= .f. AND  LEN(RTRIM(this.value))< 12  
=MESSAGEBOX("Правильно введите номер!", 48 )
this.txtNomer.SetFocus
RETURN 
ENDIF
Все срабатывает как надо, но фокус на txtNomer не остается, а переходит на следующий объект.
Что прописала в коде не так?
Благодарю
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558508
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛисонькаЛеди и джентльмены!
Благодарюиспользуй событие ::Valid()
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558511
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вообче та лучше в валиде прописать нешто
IF LEN(alltRIM(this.value))<12
=MESSAGEBOX("Правильно введите номер!",48)
RETURN .f.
ENDIF
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558518
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛисонькаЧто прописала в коде не так?а если в твой код дописать NODEFAULT - че тогда будет ? может, повезет
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558527
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100ну вообче та лучше в валиде прописать нешто
IF LEN(alltRIM(this.value))<12
=MESSAGEBOX("Правильно введите номер!",48)
RETURN .f.
ENDIFа че толку
серано это ::LostFocus()
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558535
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
быть этого не могет

если валид вернул фолс
то он снего никуда не дернется
не вжизнь
хоть пристрели его
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558545
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100хоть пристрели егоона же тусским по белому сказала :
В LostFocus Event прописано:
бла бла бла...
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558550
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня встречный вопрос. А если пользователю надоест бится лбом об стену? Ну не знает он какой номер должен быть "правильным"! Как он сможет прекратить это безобразие и закрыть форму?

Ведь, чтобы закрыть форму, надо выйти из поля, а чтобы выйти из поля, надо знать "правильный" номер. Замкнутый круг.

Может быть, логичнее выдавать это сообщение при попытке сохранить внесенные изменения? А до того, просто подсвечивать некорректное значение, например, красным цветом фона, но не запрещать переход на другой объект.
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558551
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну это проблемы индейцев

девушка не туда написала
вот и грабли у нее

проверку валидности нужно делать в валиде ....

вот и все

правила такие
есть
ходить нужно ровненько, ездить по правой стороне
не кушать на-ночь
и все - будет счастье
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558561
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex11100проверку валидности нужно делать в валиде ....нет, товаришчь чингачгук, ты неправ. проверку надо делать по окею
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558571
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
иногда и коей проверяю по ...
а иногда и по-окею не окейно

такая она сложная и непонятная штука- жизня называется

во как
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558584
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох, понаписали всего до всего!! Буду отвечать попорядку.
ALLTRIM можно, но не очень-то нужно - InputMask пробелы в начале не допустит.
Перенсла код в Valid
Не прошло, ошибка: Cannot call SetFocus from within a When, Valid и т.д.
В справке написано, что SetFocus конфликтует с данными events.
Как раз пользователи и просили ввести этот код, проверка стояла до этого именно в кнопке ОК. Им подавай сообщение об ошибке сразу. А выйти из пустого поля - я же прописала EMPTY()=.f. Раз верного номера нет - это проблема того, кто давал неверные сведения, пусть исправляется, оператор вносить такие данные не будет.
И, раз девушка наступила-таки на грабли, то вы-то на что, джентльмены?
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558599
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558605
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
маску свою напишите
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558610
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
маску какую Вы пишите
сюда напишите

я так понимаю счет
для банк счета это будет так
999 99 999 9 9999 9999999
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558615
фдуч11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12 цифер

это что счета 1-го 2-го и 3-го порядка просят вводить???
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558624
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛисонькаПеренсла код в Valid
Не прошло, ошибка: Cannot call SetFocus from within a When, Valid и т.д.
В справке написано, что SetFocus конфликтует с данными events.

Правильно написано. Только ведь не надо фокус никуда переводить. Если введено неправильно, то надо просто запретить ВЫХОД. Т.е. потерю фокуса.

Для этой цели, внутри события Valid() и используется команда

RETURN .F.

или

RETURN 0

В последнем случае не будет выскакивать системное сообщение об ошибке.
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558710
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
господа а не проще ли все это

Код: plaintext
1.
2.
3.
4.
IF EMPTY(this.value)= .f. AND  LEN(RTRIM(this.value))< 12  
=MESSAGEBOX("Правильно введите номер!", 48 )
this.txtNomer.SetFocus && Здесь я так понимаю надо вернуть фокус в текущий объект который txtnomer
RETURN 
ENDIF

сделайте так Лисонька

Код: plaintext
1.
2.
3.
4.
IF EMPTY(this.value)= .f. AND  LEN(RTRIM(this.value))< 12  
=MESSAGEBOX("Правильно введите номер!", 48 )
thisform.txtNomer.SetFocus  && Возвращаем фокус в TXTnomer на текущей форме
RETURN 
ENDIF
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558717
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати Return не обязателен
т.е.

Код: plaintext
1.
2.
3.
IF EMPTY(this.value)= .f. AND  LEN(RTRIM(this.value))< 12  
=MESSAGEBOX("Правильно введите номер!", 48 )
thisform.txtNomer.SetFocus  && Возвращаем фокус в TXTnomer на текущей форме
ENDIF
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558727
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я написал пример выше - смотрите

не делайте никаких сетфокусов


Лисонька, вышлите маску
я посмотрю
нужно ли обходить чего
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558763
Фотография FoxLamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лисонька, добрый день!
Я бы поместил Ваш код в кнопку "ВВОД" или "Применить". Так будет правильней. Помещать его в Valid - это проявление неуважения к пользователю
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33558924
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джентльмены, спасибо вам всем-всем-всем!
И файл я посмотрела, и ответы ваши.
Дело действительно лишь в том, что надо убрать в коде строку с SetFocus, а к RETURN добавть или .f. (но тогда выдается сообщение Фокса Invalid Input) или 0. Я просто не знала про эти атрибуты, а Help для RETURN читала давно.
Не ругайтесь, что проверка у меня выполняется не при попытке сохранить данные, а при выходе их текстбокса, это просьба оператора - если что не так, ему остальные данные не вводить, но изначально проверка длины прописана была именно в коммандной кнопке ОК.
12 символов - это не банковский счет, до таких серьезных программ я никогда не дорасту. Просто летом грядет какая-то всеобщая деспансеризация, и с моей шефихи трясут списки работников, которые должны эту ...изацию проходить. Списки берутся их электронной картотеки. А в картотеке имеется такое поле, как номер страхового медицинского полиса. И как раз номер этот состоит из 12 символов.
Еще раз благодарю всех.

Елизавета Скрунскайте
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33559478
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему бы и не в Valid?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
local ln_Answer

if !empty( this.value ) and len( rtrim( this.value )) <  12 
  ln_Answer = messagebox( 'Точно усё у ажуре?',  4  +  48  +  256 , 'Предупреждение ! ! !' )
  if ln_Answer =  7 
      return .f.

  endif
endif

return .t.

И если пользователь сказал "Всё окей", то условие ln_Answer = 7 не выполняется и мы спокойно выходим из валида
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33562067
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi alex11100!

> проверку валидности нужно делать в валиде ....

А я категорически против таких манёвров.
Убогий это обработчик, жестокий донельзя, ни тебе SetFocus потом
попользоваться (а может я хочу при неправильном вводе высветить свою форму
со списком "правильных" вариантов?), ни нормального способа закрыть форму,
ни нажать кнопку "Отмена" (IMHO такую кнопку юзер должен иметь возможность
нажать ВСЕГДА).
Уж если и писать, то в LostFocus - но там надо добавить NODEFAULT, и убрать
SetFocus (он лишний будет).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Фокус не остается на объекте
    #33562446
-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-
Гость
автор
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Ну почему бы и не в Valid?

local ln_Answer

if !empty( this.value ) and len( rtrim( this.value )) <  12 
  ln_Answer = messagebox( 'Точно усё у ажуре?',  4  +  48  +  256 , 'Предупреждение ! ! !' )
  if ln_Answer =  7 
      return .f.

  endif
endif

return .t.



И если пользователь сказал "Всё окей", то условие ln_Answer = 7 не выполняется и мы спокойно выходим из валида

Так можно, но у пользователей должна быть возможность включать/отключать такой режим по собственному желанию (ИМХО)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фокус не остается на объекте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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