Помощь - Поиск - Пользователи - Календарь
Полная версия: Twebbrowser сохранение исходника в файл
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Altair
Из DRKB ...

procedure TForm1.Button1Click(Sender: TObject);

var
  Flags, TargetFrameName, PostData, Headers: OleVariant;
  filename:string;
  PersistStream: IPersistStreamInit;
  FileStream: TFileStream;
  Stream: IStream;
  SaveResult: HRESULT;
begin
 filename:='c:\test.html';
 WebBrowser1.Navigate('http://forum.pascalnet.ru/index.php', Flags,
    TargetFrameName, PostData, Headers);
  PersistStream := WebBrowser1.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

    FileStream.Free;
  end;


Почему-то ругается... что может быть не так?
эта процелура обрататывает нажатие на кнопку на форме
volvo
To: Altair
Цитата
Почему-то ругается...
- это "не компилится"? А модуль ActiveX подключил?
Altair
Цитата
это "не компилится"?

нет, все компилится и запускается.... но принажатии на кнопку происходит ошибка :Нажмите для просмотра прикрепленного файла
то есть как видно в окошке сайт загрузился, а почему то не сохраняется. файл создался, но пустой)
volvo
"Не пытайся объять необъятное" (С) - Козьма Прутков :D

Страница должна быть полностью загружена в WebBrowser, и только потом ты ее сграббишь. Смотри:
procedure tform1.save_it(const filename: string; wb: twebbrowser);
var
  PersistStream: IPersistStreamInit;
  FileStream: TFileStream;
  Stream: IStream;
  SaveResult: HRESULT;
begin
  PersistStream := WebBrowser1.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

    FileStream.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
//   filename:string;
  Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
//  filename:='f:\test.html';
 WebBrowser1.Navigate('http://forum.pascalnet.ru/index.php', Flags,
    TargetFrameName, PostData, Headers);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 save_it('f:\test.html', webbrowser1);
end;

Жмешь первую кнопку, дожидаешься полной загрузки страницы, и жмешь вторую... У меня только что отработало "на ура" :yes:
Altair
Хитро.. спасибо smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.