Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: TCppWebBrowser.Document  (Прочитано 7607 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dedOK
Гость
« : 02-03-2005 17:28 » 

Привет всем!  Улыбаюсь

У меня такая проблема. Нужно обратиться к содержимому документа, загруженного в TCppWebBrowser. Для этого, похоже, имеется свойство Document. С комом я никогда не работал. Если не трудно, киньте простой примерчик, или какие-нить ссылки на Microsoft’s Dynamic HTML reference.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 03-03-2005 08:55 » 

если под TCppWebBrowser имеется в виду стандартный багландовский wrapper для виндового COM-объекта, то возможно, подойдёт вот это:

Цитата
TWebBrowser.Document включает в себя IPersistStreamInit который содержит метод Save(). Всё, что нам нужно знать, это как использовать данный метод с объектом, который включён в IStream. Для этого мы просто воспользуемся TStreamAdapter.

Обратите внимание, что интерфейсы IPersistStreamInit и IStream объявлены внутри ActiveX unit.

Итак, вот так это выглядит.

Код:
procedure TForm1.SaveHTMLSourceToFile(const FileName: string; 
  WB: TWebBrowser); 
var 
  PersistStream: IPersistStreamInit; 
  FileStream: TFileStream; 
  Stream: IStream; 
  SaveResult: HRESULT; 
begin 
  PersistStream := WB.Document as IPersistStreamInit; 
  FileStream := TFileStream.Create(FileName, fmCreate); 
  try 
    Stream := TStreamAdapter.Create(FileStream, soReference) as IStream; 
    SaveResult := PersistStream.Save(Stream, True); 
    if FAILED(SaveResult) then 
      MessageBox(Handle, 'Fail to save HTML source', 'Error', 0); 
  finally 
    { В ответ на уничтожение объекта TFileStream, передаём
      soReference в конструктор TStreamAdapter. } 
    FileStream.Free; 
  end; 
end; 

pocedure TForm1.Button1Click(Sender: TObject); 
begin 
  if SaveDialog1.Execute then 
    SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1); 
end;



А как сохранить вместе с исходником все файлы (.CSS, JPG, GIF Etc..) ?

Код:
try 
  WebBrowser1.ExecWB(4, 0); 
except 
  on E: Exception do  msError:=true; 
end;

Взято с Исходников.ru http://www.sources.ru
« Последнее редактирование: 19-12-2007 21:17 от Алексей1153++ » Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines