Что нового

Как отловить событие - окончание ввода?

vovsla

Осваивающий
Сообщения
607
Репутация
36
Необходимо отловить событие - окончание ввода в элемент Input.
$EN_UPDATE и $EN_CHANGE не подходят т.к. событие наступает после ввода одного символа
$LVN_ENDLABELEDITA, $LVN_ENDLABELEDITW - не работает для Input

Как отловить окончание ввода в элемент Input?
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Да, смотрел. Под окончанием ввода подразумевается остановка ввода.
Раньше я мониторил поле ввода и если в течении двух секунд текст не изменялся, то подразумевалось что ввод завершен.
Может есть какое-то более простое решение?


Добавлено:
Сообщение автоматически объединено:

Сейчас на ум пришла вот такая схема
Код:
...
Case $EN_CHANGE
	AdlibRegister('TestFunc', 1000)
...

Func TestFunc()
	AdlibUnRegister('TestFunc')
	Msg(16, 'tst')
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
Vovsla
Под окончанием ввода подразумевается остановка ввода
Здесь перечислены все уведомления Edit
https://msdn.microsoft.com/en-us/library/windows/desktop/ff485924(v=vs.85).aspx
И все они указаны в EditConstants.au3. Как видно, нет такого понятия "окончание ввода" для Edit.

подразумевалось что ввод завершен
Главное, чтобы пользователь об этом догадался.
Представьте, пишете вы тут ответ, а браузер вдруг сообщает: "Ваше сообщение отправлено, т.к. вы 10 секунд ничего не вводили". :smile:
 
Верх