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.
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