Страница 1 из 1
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 10:41
morkovin
ABC
Простое Login-окно с полями Login, Password и кнопками OK+Cancel. Как при вводе пароля и нажатии Enter выполнить закрытие окна ( т.е. действия по кнопке ОК)? Сейчас в поле пароля нет реакции на Enter и приходится делать лишние движения- или Tab(переход на Ок) или кликать мышкой по Ок.
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 10:52
Игорь Столяров
Повесить на поле ввода пароля AlertKey = EnterKey
По событию Event:Accepted на поле ввода пароля выполняем:
Код: Выделить всё
If ~Window{Prop:AcceptAll} and (KeyCode() = EnterKey) then Post(Event:Accepted,?OkButton).
Все.

Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 11:10
kreator
А разве не достаточно указать кнопке "ОК" статус "DefaultButton"? На кнопке же "ОК" идёт проверка на правильность ввода пароля, если пароль не тот, то отправляемся обратно на поле "Password".
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 11:51
morkovin
кнопке же "ОК" идёт проверка на правильность ввода пароля, если пароль не тот, то отправляемся обратно на поле "Password"
В данном случае я использую SecWin3(от Capesof) и решил отказаться от стандартного Логин-окна от Capesoft, т.к. там присутствет соверш. ненужная ссылка(см. рис.)
Опционально можно использовать своё окно. Но все привыкли (и я в т.ч.) завершать Enter-ом в поле пароля.
Повесить на поле ввода пароля AlertKey = EnterKey
По событию Event:Accepted на поле ввода пароля выполняем
Спасибо! Заработало. Вставил код вот сюда:

- 28.02.png (5.29 КБ) 3292 просмотра
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 12:42
Игорь Столяров
morkovin писал(а): Вставил код вот сюда:
Пожалуйста, но это не есть правильно ....
У Вас код будет срабатывать на все события, и например может не пройти присвоение
значения переменной из поля ввода. Конечно можно и это обработать, но проще повесить
обработку EnterKey именно на событие завершения ввода, как я написал ранее.
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 15:27
morkovin
обработку EnterKey именно на событие завершения ввода
именно так сделал изначально - и не сработало.
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 15:47
gopstop2007
не понял а чем стандартные средства не проходят? поле пасворд и кнопка ок в исключение и ок по умолчанию
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 15:49
kreator
А почему не повесить на событие AlertКеу. Кстати, ещё неплохо бы при этом, если надо, переменную синхронизировать с экранной:
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 15:50
Игорь Столяров
morkovin писал(а): именно так сделал изначально - и не сработало.
Это потому, что я неправильно написал .... извиняюсь ...
Нужно вешать событие не на Accepted, а на AlertKey, а EnterKey прописать в списке Alert Keys.
Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 15:56
gopstop2007
по моему нажатие в три щелчка проще и все работает, при том не один год

Как закрыть окно по нажатию Enter в Password-field?
Добавлено: 28 Январь 2016, 16:11
morkovin
нажатие в три щелчка проще и все работает
этот вариант остаётся для консерваторов
