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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Save all TWebbrowser Frame Sources? 
:(
    Опции темы
Poseidon
Дата 18.5.2005, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Код
uses 
  ActiveX; 

function TForm1.GetFrame(FrameNo: Integer): IWebbrowser2; 
var 
  OleContainer: IOleContainer; 
  enum: IEnumUnknown; 
  unk: IUnknown; 
  Fetched: PLongint; 
begin 
  while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do 
    Application.ProcessMessages; 
  if Assigned(Webbrowser1.document) then 
  begin 
    Fetched := nil; 
    OleContainer := Webbrowser1.Document as IOleContainer; 
    OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum); 
    Enum.Skip(FrameNo); 
    Enum.Next(1, Unk, Fetched); 
    Result := Unk as IWebbrowser2; 
  end 
  else 
    Result := nil; 
end; 

// Load sample page 
// Testseite laden 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Webbrowser1.Navigate('http://www.warebizprogramming.com/tutorials/html/framesEx1.htm'); 
end; 

// Save all frames in single files 
// Alle Frameseiten in einzelne Dateien speichern 
procedure TForm1.Button2Click(Sender: TObject); 
var 
  IpStream: IPersistStreamInit; 
  AStream: TMemoryStream; 
  iw: IWebbrowser2; 
  i: Integer; 
  sl: TStringList; 
begin 
  for i := 0 to Webbrowser1.OleObject.Document.frames.Length - 1 do 
  begin 
    iw := GetFrame(i); 
    AStream := TMemoryStream.Create; 
    try 
      IpStream := iw.document as IPersistStreamInit; 
      if Succeeded(IpStream.save(TStreamadapter.Create(AStream), True)) then 
      begin 
        AStream.Seek(0, 0); 
        sl := TStringList.Create; 
        sl.LoadFromStream(AStream); 
        sl.SaveToFile('c:\frame' + IntToStr(i) + '.txt'); 
        //  memo1.Lines.LoadFromStream(AStream); 
        sl.Free; 
      end; 
    except 
    end; 
    AStream.Free; 
  end; 
end; 

end. 



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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