Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2015, 09:46   #1
e.sibenkov
 
Аватар для e.sibenkov
 
Регистрация: 26.05.2014
Сообщений: 4
По умолчанию Динамическая обработка событий WebBrowser

Есть задача создать приложение (парсера) нескольких страниц одновременно.
Решил сделать это так: создать динамически необходимое кол-во WebBrowser и Memo (для отображение данных).

Код:
for ii:=1 to 5 do
             begin
              Memo := TMemo.Create(Self);
               with TWinControl(Memo) do
                  begin
                      Name := 'Memo' + intToStr(ii) ;
                      Parent:=Self;;
                                     end;
              WebBrowser:= TWebBrowser.Create(Self);
                   with TWinControl(WebBrowser) do
                       begin
                           Parent := Self;
                           Name := 'WebBrowser' + intToStr(ii) ;
                           Parent := Self;
                            WebBrowser.Navigate(adress[ii]);
                           WebBrowser.OnDocumentComplete:=WebBrowserDocumentComplete;

                        end;
             end;
Во время создание объектов сделал связку: после загрузки страницы выполнить событие.
Код:
  WebBrowser.OnDocumentComplete:=WebBrowserDocumentComplete;
При запуске программа ругается в строке WB_GetHTMLCode....
Код:
procedure TForm1.WebBrowserDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OLEvariant);
var
 RegExp: TRegExpr;
 s: string;
 CurWebrowser : IWebBrowser;
 TopWebBrowser: IWebBrowser;
 Document     : OLEvariant;
 WebBrowser: TWebBrowser;
 Memo:Tmemo;
 WindowName, find   : string;
 j, k, i : integer;
begin
   WB_GetHTMLCode(Webbrowser, Memo.Lines);
......
end;
На сколько я понял здесь беда в Webbrowser и Memo.Lines так их нету.
Вопрос: как правильно их описать в процедуре так они все создаются динамически и вариант c циклом
Код:
WB_GetHTMLCode(Webbrowser(ii), Memo(ii).Lines)
не прошел у меня ((.
e.sibenkov вне форума Ответить с цитированием
Старый 30.06.2015, 11:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
При запуске программа ругается в строке WB_GetHTMLCode....
Я так понимаю, текст ругани нам угадывать нуна?
Ладно. Телепатирую: Такой функции не существует. Вывод прост - используй innerHTML свойства документа браузера для получения HTMLки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2015, 14:30   #3
e.sibenkov
 
Аватар для e.sibenkov
 
Регистрация: 26.05.2014
Сообщений: 4
По умолчанию

Исходник прикрепил. В Файле setting при параметре countnum=1 все работает нормально на против ока браузера отображается html код.
При countnum=4, WebBrowser1,WebBrowser2,WebBrowser3 отображает почему то пусто, а только при WebBrowser4 в memo4 видно исходный код.
Мне надо так: показать WebBrowser1 и в Memo1 (исходный код WebBrowser1), в WebBrowser2 и в Memo2 (исходный код WebBrowser2) и т.д.
Вложения
Тип файла: zip call.zip (256.0 Кб, 5 просмотров)
e.sibenkov вне форума Ответить с цитированием
Старый 30.06.2015, 14:48   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Sender и есть твой WebBrowser. Только передавать TWebBrowser(Sender). А memo при создании можно в массив поместить Memos: array[1..5] of TMemo и индекс массива в WebBrowser.tag засунуть. По этому индексу из tag и брать нужный memo из массива
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.06.2015, 19:53   #5
e.sibenkov
 
Аватар для e.sibenkov
 
Регистрация: 26.05.2014
Сообщений: 4
По умолчанию

Можно более подробнее "для особо одаренных людей" как действовать с Sender и WebBrowser.
e.sibenkov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая привязка событий и удаление объектов Armagedo C++ Builder 3 23.07.2014 19:48
Обработка событий Кольша Win Api 4 16.10.2013 17:34
Обработка JS событий Pamparam JavaScript, Ajax 5 15.08.2012 15:33
обработка событий CoRviN88 Помощь студентам 0 16.12.2010 13:46
Обработка событий meganom Общие вопросы Delphi 5 01.09.2010 19:41