![]() |
Модераторы: MetalFan |
![]() ![]() ![]() |
|
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: нет Всего: 72 |
Добрый день, дамы и господа!
Вопрос в следующем: есть html-файл с java-скриптами. Загружаю его в stringlist, меняю кое-какие параметры и загружаю этот stringlist в EmbeddedWB. Скрипты на страничке запрашивают информацию из интернета, что-то там делают и выводят итог на эту же локальную страницу. Результат я забираю в свою программу. В зависимости от ситуации, мне далеко не всегда необходимо показывать пользователю окно с браузером. Но! Если я пытаюсь не назначать EmbeddedWB.Parent, то событие OnDocumentComplete не отрабатывает. Фокус с
тоже не работает, скрипты просто не отрабатывают. Если же назначить EmbeddedWB.Parent = TForm.Create(...), но саму форму не показать, то ситуация аналогичная - "не взлетает". Я готов смириться с тем, чтобы окно было видимым, но последним в Z-order. Но, если окно, на которое динамически брошен EmbeddedWB, показывать, то оно почему-то становится поверх всех окон приложения и никакие SendToBack для него не отрабатывают. С OLE-контролами раньше не работал, пытался просмотреть исходники - ничего не понял, как вызываются обработчики событий. Прошу помощи в разрешении этой проблемы. В идеале - всё должно работать не только в vcl-потоке, но и в дополнительных. В доп.потоке, естественно, без показа окна браузера, только "забор" результатов со страницы. P.S. Не использовать ява-скрипты, реализовав их логику в программе не предлагать ![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 3 Всего: 128 |
kami, а если при создании EmbeddedWB отдать в конструктор эту самую форму? помимо установки Parent'а... а еще проверить visible
-------------------- There are always someone smarter than you... |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: нет Всего: 72 |
MetalFan, Отдаю, и как Owner и как Parent. Иначе не арбайтен.
Проблема в том, что мне нужна работа с EmbeddedWB.Parent = nil, или хотя бы OwnerForm.Visible = False. На совсем крайний случай - OwnerForm.SendToBack. А не получается ни одно из действий. Это сообщение отредактировал(а) kami - 12.10.2012, 14:02 |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: нет Всего: 72 |
Я бы с удовольствием обошелся бы вообще без веб-браузера, заменив его на что-нибудь.
Но не знаю, как заставить это "что-нибудь" в скрытом режиме: - загрузить html-код из буфера - выполнить ява-скрипты - (необязательно) просигнализировать о выполнении. - выдать получившуюся информацию (что-то типа getElementByID('...').InnerText) |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 3 Всего: 128 |
kami, может сбацаешь тестовый проект, на которым проблема сразу видна? я б глянул на досуге.
-------------------- There are always someone smarter than you... |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: нет Всего: 72 |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 3 Всего: 128 |
kami, да, действительно, форма, на которой создается WB должна быть видима в момент загрузки... Но...
Делаем так:
И форма типа "видима" и овцы целы) Только я бы "таймаут" бы увеличил... не у всех быстрый инет и компы, чтобы за 6 сек отработало... секунд хотябы 15-20 было бы наверное достаточно. Это сообщение отредактировал(а) MetalFan - 13.10.2012, 10:51 -------------------- There are always someone smarter than you... |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 2 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 3 Всего: 128 |
Чучмек, хм) ларчик просто открывался. а почему это интересно влияет?
-------------------- There are always someone smarter than you... |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: нет Всего: 72 |
Господа, прошу прощения за долгое молчание - интернет халявный и глючит. Только попробуешь отправить сообщение - обрубает.
MetalFan, здОрово! До такого решения как-то не додумался ![]() Чучмек, а это еще интереснее. Действительно, почему помогает? Кстати, если WB выставить Parent = nil и отправить WM_ACTIVATE, то он появляется в левом-верхнем углу экрана, без бордюра ![]() Сперва не помогало, кстати, замучился проверять. Но выяснилось, что IE перешел в автономный режим как раз из-за глючности подключения. ![]() А это не мои проблемы. Хотят пользоваться - пусть имеют быстрый интернет, тем более что он и без этой части программы нужен, иначе работа просто встанет. |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 2 Всего: 41 |
Инициализация в OnActivate.
Добавлено через 8 минут и 51 секунду Вообще надо WA_ACTIVE отправлять но WB не делает разницы между WA_ACTIVE и WA_INACTIVE, а нули быстрее набирать -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |