Что нового

Фокус окна при _IEAction($obj, 'focus')

The Dream

Новичок
Сообщения
393
Репутация
3
Всем привет :smile:

Для начала расскажу о том, что имеем:

- браузер (GUICtrlCreateObj) в одном окошке;
- маленькое окошко ввода в поля браузера, это уже отдельное окошко (от GUICreate до GUIDelete - все в отдельной ф-ции под local)

Очень не обычная проблема у меня и заключается она в следующем - есть окно, потом в ф-ции вызывается еще одно - все хорошо, работать с окном я могу если не считать что на клавишу backspace - ноль реакции. Второе окно вызывается в отдельной ф-ции.
В общем вроде все правильно - но если убрать строчку в другой функции - а именно _IEAction($obj, 'focus') - то клавиша backspace уже работает. Методом экспериментов выяснилось, что каким то образом фокус передается в поле обьекта GUICtrlCreateObj и уже не снимается. То есть получается что клавиша работает, просто не в окошке, а в другом - там где GUICtrlCreateObj, и именно в этом обьекте. Хотя окошко второе активно и вводить я могу. Верите или нет, но ввожу я в маленьком окошке, а кнопка backspace работает в обьекте браузера, как бы странно не было. Я часами все проверял, если убрать строчку _IEAction($obj, 'focus') - все ок.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Все дело в том, что ф-ция _IEAction работает до ф-ции вывода окошка второго. Когда второе окошко выводится - я его ставил активным чем только можно, но все равно в нем все работает кроме клавиши backspace.
 

asdf8

Скриптер
Сообщения
564
Репутация
152
The Dream [?]
Верите или нет, но ввожу я в маленьком окошке, а кнопка backspace работает в обьекте браузера

Я уже поднимал похожую тему.
Нашел два решения этой проблемы :
простое - не делать окно дочерним к окну с браузером,
сложное - установить для дочернего окна акселератор на клавишу backspace и обрабатывать это событие своим обработчиком.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
asdf8
но дело в том, что я не делаю окно дочерним. То есть, никакой флаг не ставлю. Просто создаю аналогию в отдельной ф-ции.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
DarWiM, к сожалению - принципиально. Ладно, буду прибегать к помощи акселератора.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
The Dream
Позвольте узнать, почему именно дочернее окно? Обычное окно обладает теми же свойствами, ИМХО.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Re: Фокус окна при _IEAction($obj, \'focus\')

DarWiM
Окно вызывается в отдельной ф-ции. Глупо будет, если постоянно будет скрыто окошко, когда оно вызывается не всегда.


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

DarWiM [?]
The Dreamтогда просто создайте второе окно раньше первого
smiley.gif
Re: Как отучить окно с IE перехватывать события дочерних окон?

Тему можно закрывать, решение найдено в выше процитированном сообщении.
 
Верх