Помощь - Поиск - Пользователи - Календарь
Полная версия: 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.