powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / KeyDown в Web Browser
5 сообщений из 5, страница 1 из 1
KeyDown в Web Browser
    #39142403
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В окне имеется объект MS Web Browser. Когда фокус находится в нем нужно перехватить нажатие на Escape.
Каким макаром?
...
Рейтинг: 0 / 0
KeyDown в Web Browser
    #39142667
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska ,
тоже когда-то искал решение для похожева случая, но так и не получилось.
Может еще это пригодится.

P.S. для меня этот вопрос ещё актуален. Если будут результаты, прошу поделится :)
...
Рейтинг: 0 / 0
KeyDown в Web Browser
    #39149596
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
Делюсь.

На окне есть кнопка cb_return, которая закрывает ole и открывает DW на его месте. Короче, делает те действия, которые мы хотим получить при нажатии на Esc.

В ole_WebBrowser есть событие "commandstatechange". Оно срабатывает на все телодвижения. В нем пишем:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
any 	la_any_object
string ls_active

IF IsValid(This.Object.Document) THEN
	la_any_object = This.Object.Document.activeElement
	ls_active = string(la_any_object)
	IF Pos(ls_active, 'Input') > 0 THEN
		// Ничего... Происходит удаление текста в поле ввода
	ELSE
		cb_return.SetFocus()
	END IF
END IF



В самом окне в событии "key" пишем:
Код: sql
1.
2.
3.
4.
5.
6.
IF key = KeyEscape! THEN
   IF ole_WebBrowser.Visible THEN
	cb_return.Event clicked()
	RETURN
   END IF
END IF
...
Рейтинг: 0 / 0
KeyDown в Web Browser
    #39149709
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska ,
хотя это и не прямое решение, а эмуляция события, но думаю, что пригодится. Спасибо.
...
Рейтинг: 0 / 0
KeyDown в Web Browser
    #39160250
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнение.
В предыдущем примере перестает работать колесо мышки, когда мы находимся над ole_WebBrowser.
Вот это решает проблему (событие "other" на окне):
Код: sql
1.
2.
3.
4.
5.
6.
CHOOSE CASE Message.Number
   CASE 522 //WM_MOUSEWHEEL
  	IF ole_google_search.Visible THEN
		ole_google_search.SetFocus()
	END IF
END CHOOSE
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / KeyDown в Web Browser
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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