You can use WebBrowser to download, but do not know how to save to file. The real source code access WebBrowser, returns the original format code, the. uses ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean; var ps: IPersistStreamInit; fs: TFileStream;. uses UrlMon; function DownloadFile(SourceFile, DestFile: string): Boolean; begin try. Result:= UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0.

Author: Vizshura Zulkitilar
Country: Burundi
Language: English (Spanish)
Genre: Life
Published (Last): 20 October 2015
Pages: 304
PDF File Size: 3.22 Mb
ePub File Size: 6.31 Mb
ISBN: 228-7-33024-426-7
Downloads: 26202
Price: Free* [*Free Regsitration Required]
Uploader: Zukazahn

TMemo; procedure FormCreate Sender: This method essentially falls into two parts.

Delphi Saving Document XML Source from TWebbrowser – Delphi-PRAXiS

Post as a twebbroowser Name. Lines[] or use a method like TMemo. Seems pointer info to me. I need this for reading this HTML document with all values next time when application will be used.

Sign up using Facebook. Since the browser control supports different character encodings we need to add support for this to our code. You wouldn’t have to do such a thing with a native Delphi control such as a TMemo — you would simply access a relevant property like TMemo.

And this is where it gets more complicated — for the first time we have to mess around with the COM stuff. This routine simply copies the provided stream into a TBytes array then uses the GetBufferEncoding class method of TEncoding to determine the encoding.

By clicking “Post Your Answer”, you acknowledge that you have read our updated terms of serviceprivacy policy and cookie policyand that your continued use of the website is subject to these policies.

We first record the default encoding to return if we can’t examine the document for any reason.


Sure this is possible! As mjn pointed out, the values of password type inputs will not be shown. Once we have a reference to the current document in Doc we create a memory stream object and twebbrowser the browser content into it by calling InternalSaveDocumentToStream.

How to save the page displayed in a TWebBrowser to a single page .mht web archive file

By using our site, you acknowledge that you have read and understand our Cookie PolicyPrivacy Policyand our Terms of Service. We then go into a loop and wait for the document to load completely. TEncoding ; var Doc: Next we set the memory stream’s position to skip over any byte order mark preamble. As noted above, the code presented in this article does not work correctly when loading and saving in Unicode or UTF-8 when built with a non-Unicode version of Delphi.

Let’s first decide of the main functions of the web browser we want to be able to access easily — these will be our requirements for the wrapper class. The public methods fall naturally into several groups and, rather than explaining the purpose of each method now, we will look at them in groups. TFileStream ; begin FileStream: How to load and save documents in TWebBrowser in a Delphi-like way.

Free; end ; and here is code how to display the View-Source textbox.

In contrast the overload of SaveToStream is very different. Firstly we decide whether to use the browser’s cache to access the document. Boolean ; procedure NavigateToResource const Module: Free; end; end; end; procedure TForm1.

Seek 0soFromBeginning ; Size: You should call the SaveToStream overload that does not take an Encoding parameter instead.


If you agree to all this then please download the code using the following link. Don’t expect it to be perfect for production code, although you should be able to use it as a basis. If you use the “view source” option in the browser the XML -file will open OK without any formatting by the browser. If the resource type parameter is omitted then it is left out of the URL — the res: Choosing Unicode or UTF-8 examples when loading strings into the demo will fail when it is built with compilers earlier than Delphi The simplest of these is the NagivateToLocalFile method.

Create Stream ; PersistStreamInit. The decision is based on whether the document is stored locally or is on the internet. The second requirement was to provide access to the encoding used for the browser control’s current document.

We then check to see if the document supports the IPersistStreamInit interface, getting a reference to the supporting object. A boolean value indicating whether the file exists is returned.

Whosrdaddy – Thank You! DavidHeffernan, It is bad because my external application can read passwords from other IE application As can be seen this is all quite straightforward if you’re used to using TStream s. It does this because SaveToString handles the document encoding correctly. It interacts with the browser control to save the whole document to a stream.