Сьогодні ми навчимося зберігати исходник HTML з TWebBrowser.Document на диск. Робиться це дуже просто і я думаю труднощів з цим у вас виникнути неповинно.
Ну що поїхали, як завжди для початку відкриваємо Delphi і перше що нам потрібно буде зробити це дописати в розділ uses ActiveX. Рухаємося далі тепер кидаємо на форму дві кнопочки (button) з закладки standart. компонент SaveDialog з закладки Dialog і компонент webBrowser з закладки internet. Так з компонентами ніби розібралися
Створюємо обробник подій (onclick) на першій кнопці і в ньому прописуємо наступний код:
Так тепер переходимо на самий верх і відразу ж після public пишемо:
procedure SaveHTMLSourceToFile (const FileName. string; WB: TWebBrowser);
Натискаємо комбінацію клавіш Ctrl + Shift + C
І Delphi автоматично генерує процедуру, вийти повинно приблизно так:
procedure TForm1.SaveHTMLSourceToFile (const FileName. string;
WB: TWebBrowser);
begin
Зараз давайте пропишемо дії, які буде виконувати дана процедура, а саме вона повинна зберігати поточний відкритий в компоненті 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.