Admin Fondateur
Nombre de messages : 197 Age : 40 Localisation : Tlemcen ( Algérie ) Date d'inscription : 04/12/2006
| Sujet: Comment afficher une page construite dans son application ? Jeu 18 Jan - 16:39 | |
| [url=#buildpage]Comment afficher une page construite dans son application ?[/url] Le protocole About vous permet d'envoyer une chaîne de caractères dans votre composant TWebBrowser. Très pratique, ce protocole peut être utilisé pour construire des pages dans votre application et les afficher sans avoir à les enregistrer au préalable. Cette technique est utilisable pour de courts documents. - Code:
-
procedure TMyForm.MyButtonClick(Sender: TObject); var Flags, TargetFrameName, PostData, Headers: OleVariant; sHTML: String; begin sHTML := { votre code HTML }; MyWebBrowser.Navigate('about:' + sHTML, Flags, TargetFrameName, PostData, Headers); end; Si le document que vous voulez afficher est trop important pour être passé par URL (> 2ko), vous devrez utiliser une autre technique. Celle-ci utilise l'une des interfaces proposées par le composant TWebBrowser pour lui indiquer de charger le code source de la page depuis un flux de données (stream) : - Code:
-
uses Classes, Forms, ShDocVw, ActiveX;
procedure LoadHTML(AWebBrowser: TWebBrowser; const HTMLCode: string); var ss: TStringStream; sa: TStreamAdapter; begin // Il est nécessaire de réinitialiser la page avec un appel à Navigate AWebBrowser.Navigate('about:blank');
// Il faut attendre que le navigateur soit prêt while AWebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
if Assigned(AWebBrowser.Document) then begin // On crée un flux ss:= TStringStream.Create(HTMLCode); try // et un adaptateur IStream sa:= TStreamAdapter.Create(ss); // Ne pas libérer
// On appelle la méthode de chargement du WebBrowser (AWebBrowser.Document as IPersistStreamInit).Load(sa); finally // On libère le flux ss.Free; end; end; end; | |
|