Сегодня мы научимся сохранять исходник HTML из TWebBrowser.Document на диск. Делается это очень просто и я думаю трудностей с этим у вас возникнуть недолжно.
Ну что поехали, как всегда для начала открываем Delphi и первое что нам нужно будет сделать это дописать в раздел uses ActiveX. Двигаемся дальше теперь кидаем на форму две кнопочки (button) с закладки standart, компонент SaveDialog с закладки Dialog и компонент webBrowser с закладки internet. Так с компонентами вроде разобрались
Создаем обработчик событий(onclick) на первой кнопке и в нем прописываем следующий код:
webbrowser1.Navigate(http://.kolpinkurs.ru/);
Так теперь переходим на самый верх и сразу же после public пишем:
procedure SaveHTMLSourceToFile(const
FileName: string; WB: TWebBrowser);
Нажимаем комбинацию клавиш Ctrl+Shift+C
И Delphi автоматически генерирует процедуру, получиться должно примерно так:
procedure TForm1.SaveHTMLSourceToFile(const FileName: string;
WB: TWebBrowser);
begin
end;
Сейчас давайте пропишем действия, которые будет выполнять данная процедура, а именно она должна сохранять текущий открытый в компоненте webbrowser документ в виде исходника HTML
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
FileStream.Free;
end;
end;
Вот практически и все осталось только создать обработчик событий (onClick) на второй кнопке и прописать там:
if SaveDialog1.Execute then
SaveHTMLSourceToFile(SaveDialog1.FileName,
WebBrowser1);
Запускаем программу, жмем сначала на первую кнопку, ждем пока в компоненте WebBrowser загрузиться страница.
Теперь нажимаем на вторую кнопку и сохраняем загруженную страницу, в Поле
Имя файла: вводим например test.
Использован материал с сайта http://www.delphiexpert.ru/view_lesson.php?id=28