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