Сегодня мы научимся сохранять исходник HTML из TWebBrowser.Document на диск.
Делается это очень просто и я думаю трудностей с этим у вас возникнуть недолжно.
Ну что поехали, как всегда для начала открываем Delphi и первое что нам нужно
будет сделать это дописать в раздел uses ActiveX. Двигаемся
дальше теперь кидаем на форму две кнопочки (button) с закладки standart,
компонент SaveDialog с закладки Dialog и компонент webBrowser с закладки
internet. Так с компонентами вроде разобрались
Создаем обработчик событий(onclick) на первой кнопке и в нем прописываем
следующий код:
webbrowser1.Navigate('http://www.delphiexpert.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 загрузиться страница.
Теперь нажимаем на вторую кнопку и сохраняем загруженную страницу, в Поле Имя
файла: вводим например delphi.txt или expert.html
|