|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.09.2019, 15:25 | #1 |
Пользователь
Регистрация: 03.04.2015
Сообщений: 31
|
Application.ProcessMessages() в собственных компонентах
Написал потомка от TWebBrowser а как при ожидании навигации выполнить Application.ProcessMessages() не знаю (TApplication не видим).
Конечно извратился через поиск: Код:
______________________ Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ Последний раз редактировалось Alex11223; 24.09.2019 в 15:34. |
24.09.2019, 15:46 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
это так себе идея. Надо нормально использовать события.
Что вы сделать пытаетесь? Если это какая-то автоматизация типа бота, то для такого проще всего взять Selenium на любом ЯП где он доступен. (зачем вам вообще Билдер в 2019 году? взяли б хоть Qt раз С++) И TWebBrowser это IE. Его уже давно не обновляют, многие сайты перестают его поддерживать, и даже Майкрософт не считает его браузером. А на некоторых сайтах по умолчанию вообще может включиться режим IE 7. ЗЫ у вас странный стиль отступов.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 24.09.2019 в 15:53. |
24.09.2019, 16:48 | #3 |
Пользователь
Регистрация: 03.04.2015
Сообщений: 31
|
Код:
т.е. вызвать диспетчер очередей без применения TApplication. |
24.09.2019, 17:04 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
я про исходную задачу спрашивал, зачем вам браузер в билдере.
а так такие ожидания не стоит использовать, просто обрабатывайте события.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
24.09.2019, 17:42 | #5 |
Пользователь
Регистрация: 03.04.2015
Сообщений: 31
|
Поясните, пожалуйста, как организовать обработку события от браузера, подтверждающего его READYSTATE_COMPLETE ?
|
24.09.2019, 17:57 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
ну там есть же события завершения загрузки и т.д., в любом примере это показано. Делайте в них что надо.
Если загружать надо много раз, то будет callback hell )) Но Application.ProcessMessages() не особо лучше если нормально делать и с ним легко сделать фигню если тупо использовать как обычную синхронную функцию и не блокировать UI и т.д. А если вы еще и спрятали это внутрь компонента, то легко забыть где что. Ну и вообще с TWebBrowser куча проблем, лучше понять как можно раньше, что вы выбрали неправильный инструмент, и взять что-то нормальное.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
25.09.2019, 10:31 | #7 |
Пользователь
Регистрация: 03.04.2015
Сообщений: 31
|
Да, всё там ... написано, сколько будет редиректов, столько и OnDocumentComplete.
Задача по отслеживанию истории вакансий на одном сайте (получится, то и многих), парсинг приходится делать только после полной загрузки страниц и выполнения на них всех скриптов. Ну и что же вместо TWebBrowser ? |
25.09.2019, 10:40 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
я же сказал, для такой автоматизации самый простой вариант — Selenium, на любом ЯП где он доступен.
И С++ вообще плохой выбор для такой задачи, он тут не даст никаких преимуществ (производительность зависит в основном от сети и сервера) и только замедлит разработку. Для такого берут что-то высокоуровневое типа Питона. И GUI обычно не нужен для такого, часто хватает консоли, файлов и т.д.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 25.09.2019 в 10:44. |
25.09.2019, 11:46 | #9 |
Пользователь
Регистрация: 03.04.2015
Сообщений: 31
|
Пока я прочитал только про Selenium, GUI только для Firefox (ведь на эти вакансии надо ещё поглядеть),
а историю вместо БД я куда положу ? |
25.09.2019, 12:07 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Selenium это библиотека для автоматизации браузеров. Там есть простая GUI версия для ФФ с записью действий, но это не нужно в данном случае.
в БД. В чем проблема с этим?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 25.09.2019 в 12:09. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Timer и Application.ProcessMessages | Zerofill | Общие вопросы Delphi | 5 | 21.11.2009 13:29 |
application.ProcessMessages; | UROKSAN | Общие вопросы Delphi | 2 | 10.04.2008 13:32 |
Аналог Application.ProcessMessages() | Alter | Общие вопросы Delphi | 10 | 10.02.2008 00:58 |
Application.ProcessMessages | =LeonZone= | Общие вопросы Delphi | 11 | 27.01.2008 21:31 |
Application.ProcessMessages | KAMASUTR | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 11.08.2007 23:38 |