Comment rendre un élément HTML sans utiliser de navigateur Web?
Est là une manière d'attirer HTML le contenu d'un élément sur une toile sans utilisation d'un contrôle de navigateur web ?
Avec ce code, je me suis rendu de l'élément de la forme de la toile (juste un exemple).
Il fonctionne bien, mais ce code n'est pas une bonne pratique - voir ci-dessous, pourquoi...
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;
C'est mauvais parce
- il utilise le caché TWebBrowser de contrôle, mais je voudrais charger le document HTML directement par le biais de la IHTMLDocument de l'interface et la rendre certaines élément sur mon propre toile
- si je créer et charger le IHTMLDocument manuellement par exemple de cette façon puis le moteur de rendu méthode IHTMLElementRender.DrawToDC n'est pas peindre quoi que ce soit (peut-être parce qu'il n'y a pas de toile pour le rendu du document)
- encore pire, c'est que IHTMLElementRender.DrawToDC est obsolète en ce moment, donc je suis à la recherche d'une méthode alternative pour le rendu des éléments sur ma propre toile
Est-il propre façon de résoudre ce problème à l'aide de MSHTML ?
source d'informationauteur TLama
Vous devez vous connecter pour publier un commentaire.
DrawToDC et IViewObject les deux nécessitent le TWebBrowser de contrôle pour afficher le document dans une cible DC.
Peut-être vous pouvez essayer THtmlViewer?
http://code.google.com/p/thtmlviewer/
Voir THTMLabel de tms-logiciel