Delphi – Snimanje source koda HTML stranice iz kontrole TWebBrowser

U jednom od prethodnih priloga, videli smo kako možemo da pomoću Delphi-jeve kontrole „TWebBrowser„, kreiramo potpuno funkcionalni web browser. Osobina ove kontrole „TWebBrowser.Document“ implementira IPersistStreamInit, koja u sebi krije metod „Save()„. Sve što je potrebno da znate, da bi mogli da snimite source kod na disk, je da znate na koji način da iskoristite navedeni metod zajedno sa objektom u koji je ugrađen.

Za primer, pokrenite Delphi i novi projekt, pa na praznu formu postavite sledeće komponente :

  • Dve Button kontrole („Snimi source“ i „GO“),
  • Jednu TWebBrowser kontrolu,
  • Jedan TEditBox, i
  • Jedan Save dijalog.
Rasporedite ih kao na slici i dodajte kod. Pre nego što dodamo kod, u deklaraciju uses ne zaboravite da dodate „ActiveX“.


procedure SnimiHTMLSourceUFajl(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, ‘Neuspesan pokusaj
snimanja!’, ‘Error’, 0);
finally
FileStream.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
SnimiHTMLSourceUFajl(SaveDialog1.FileName, WebBrowser1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.Navigate(Edit1.Text);
end;


Kada pokrenete program, upišite URL adresu u Edit1 polje i kliknite na dugme „GO“. U okviru WebBrowser1 kontrole otvoriće vam se data stranica. Potom kliknite na dugme „Snimi source“ i otvoriće se standardni „Save As“ dijalog, u kome ćete odrediti lokaciju za snimanje, naziv i ekstenziju fajla.

Pratite Krstaricu na www.krstarica.com