Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дублирование WB, Как скопировать один WB в другой? Весь! 
:(
    Опции темы
Xenofibrius
  Дата 21.6.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Всем привет!
Такая вот тема: в "фоновом" режиме закачивается определенная страница в компонент TWebBrowser. 
   Фоновый режим - компонент на форме размером 0,0 с bsNone стилем (если кто знает, подскажите, как сделать по человечески? Надо закачать страницу на невидимой форме и проверить, что конец закачки, с READYSTATE_COMPLETE не получилось) ((. 
   Далее с этого WB надо перекинуть скаченную страницу на браузер лицевой формы, который видим. Метод WB1.Assign(WB2) дает ошибку. Подскажите, пожалуйста, как тут быть? Надо скопировать не только HTML, но и картинки, и стили и т.д.
PM MAIL   Вверх
MetalFan
Дата 21.6.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



использовать WB для фоновой загрузки страницы... имхо не очень хорошая идея.
есть несколько менее ресурсоемких способов. (idHTTP, WinInet, WinHTTP, UrlMon, etc...)
а примеров, как загрузить полученную страничку в WB, в сети и на этом форуме валом.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Xenofibrius
Дата 21.6.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



MetalFan, а смысл предварительной скачки при использовании предложенных дополнительных способов?
Скачка фоновая - это ее главная задача! При использовании, к примеру, idHTTP - скачаем код, а как закачать картинки, css, js? Парсить и скачивать все по отдельности, а потом подменять? ИМХО, гораздо более геморойный способ.
Необходимо скопировать область данных из одного WB в другой, все данные, а не только HTML, причем не через файл! Не просто так же в TWebBrowser определен метод Assign. Мне кажется через Stream можно сделать, ток у меня не получается все никак  smile 
PM MAIL   Вверх
MetalFan
Дата 22.6.2008, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Assign для WB видимо не прокатит. можно включить второму WB режим чтения из кэша (aka Offline Mode).... и по идее после обращения второго WB к той же странице она подгрузица из кэша. или целиком сохранить страницу в один файл(веб-архив aka mht) и потом из него загрузить....

Это сообщение отредактировал(а) MetalFan - 22.6.2008, 00:49


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Xenofibrius
Дата 22.6.2008, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Если там капча или AJAX, то метод с кешем не катит! Да может и не кешится страница по настройкам. 
Про сохранение - получается сохранить только текст, всю страницу пока не хочет :(
PM MAIL   Вверх
MetalFan
Дата 22.6.2008, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



тогда попробуй через mht (How to save a web page as HTML or MHT).
хотя тут наверное будет то же, что и с кэшем


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Xenofibrius
Дата 22.6.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Спасибки! Откуда достать CDO_TLB прочитал там же, но он требует еще и ADODB_TLB - а вот это где взять?
PM MAIL   Вверх
MetalFan
Дата 22.6.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



так там в конце статьи написано, откуда взять

Это сообщение отредактировал(а) MetalFan - 22.6.2008, 21:53


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Xenofibrius
  Дата 22.6.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Конец статьи:

Note 1: The _Stream class is defined in ADODB_TLB unit that you probably already have created. The IMessage and IConfiguration interfaces code from cdosys.dll library. CDO stands for Collaboration Data Objects - object libraries designed to enable SMTP Messaging.
The CDO_TLB is an auto generated unit by Delphi. To create it, from the main menu select "Import Type Library", select "C:\WINDOWS\system32\cdosys.dll" then click the "Create unit" button.


Переводится примерно как:

Примечание 1: _Stream класс объявлен в ADODB_TLB юните, который вероятнее всего уже создан вами. Коды IMessage и IConfiguration интерфейсов находятся в cdosys.dll библиотеке.  
{CDO stands for Collaboration Data Objects - object libraries designed to enable SMTP Messaging. (Сложнопереводимая фраза) }
CDO_TLB автоматически генерируемый Delphi юнит. чтобы его создать, из главного меню выберите "Import Type Library", выберите "C:\Windows\system32\cdosys.dll", и нажмите "Create unit" кнопку.


CDO_TLB создал. Может я что-то не то перевел, а может неправильно, но из выше написано непонятно, откуда взять ADODB_TLB, если у меня его нет. Может знает кто, где он или как его создать?  
PM MAIL   Вверх
Xenofibrius
  Дата 22.6.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



О, шикарно, все заработало! ADODB_TLB лежит рядом с CDO_TLB (по умолчанию в $(BDS)\Imports). Все прекрасно работает.
Только вот, долго, файл размером в 60кб ((.  Спасибо огромное,  MetalFan! Кто знает способы не через файл, отпишитесь, очень надо ))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.