Is there a way how to draw specific HTML element content on a canvas without using any web browser control ?
With this code I'm rendering the element to the form's canvas (just as an example).
It works though, but this code is not a good practice - see below, why...
uses
SHDocVw, MSHTML;
procedure TForm1.Button1Click(Sender: TObject);
var
WebBrowser: TWebBrowser;
HTMLElement: IHTMLElement;
HTMLRenderer: IHTMLElementRender;
begin
WebBrowser := TWebBrowser.Create(nil);
try
WebBrowser.ParentWindow := Application.Handle;
WebBrowser.Navigate('https://stackoverflow.com/questions/2975586/good-delphi-blogs');
while WebBrowser.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;
HTMLElement := (WebBrowser.Document as IHTMLDocument3).getElementById('question');
HTMLRenderer := (HTMLElement as IHTMLElementRender);
HTMLRenderer.DrawToDC(Canvas.Handle);
finally
HTMLElement := nil;
HTMLRenderer := nil;
WebBrowser.Free;
end;
end;
It's bad because
Is there a clean way to solve this using MSHTML ?
To display HTML, CSS and JS content you can use any notepad editor available on the Operating System you use like notepad, notepad++ etc. But to render it, you can use IDE's like Eclipse which provide you with a 'Web Developer Tools' plugin.
As a website, the answer is no.
You can show HTML tags as plain text in HTML on a website or webpage by replacing < with < or &60; and > with > or &62; on each HTML tag that you want to be visible. Ordinarily, HTML tags are not visible to the reader on the browser.
DrawToDC and IViewObject both require the TWebBrowser control to actually render the document into a target DC.
Maybe you can try THtmlViewer? http://code.google.com/p/thtmlviewer/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With