Sommaire

ActiveX Internet Explorer

 

Qu'est ce que TWebBrowser

TWebBrowser est un ActiveX Microsoft, d'internet Explorer. Il vous permet d'intégrer toutes les fontions d'internet Explorer 4 ou supérieur au sein de votre application Delphi.

 Comment utiliser TWebBrowser

Vous devez avoir Internet Explorer 4 ou supérieur installer sur votre ordinateur. Si vous utilisez Delphi 5, il est déjà installé dans la palette Internet sinon vous devez importer l'activeX pour pouvoir l'utiliser. Pour cela vous allez dans le menu Composant, Option Importer un ActiveX, choisissez Microsoft Internet Controls, puis cliquer sur le bouton Installer. Delphi génère le fichier ShDocVw_TLB et ajoute dans la palette ActiveX 2 composants TWebBrowser et TWebBrowser_V1.

Lorsque vous souhaitez intégrer le navigateur dans votre application il vous suffit de déposer le contrôle sur votre Form et de rajouter les éléments suivant dans votre unité :

Dans le Uses ajouter :  ActiveX
En fin de votre unité avant le end final rajouter :
initialization
  OleInitialize(nil);
finalization
  OleUninitialize;
end.

Ces lignes vous permettrons d'avoir accès au Copier Coller sur ce contrôle

Ouvrir un fichier HTML

 Pour ouvrir une URL ou un fichier local, vous devez utiliser la méthode Navigate


procedure Navigate
(const URL: WideString; var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant; var Headers: OleVariant);

 

 

 

 

 

URL : spécifie l'adresse du fichier que le navigateur Web doit afficher.

Flags : ensemble de valeurs qui spécifient s'il faut ajouter la ressource à l'historique, s'il faut lire depuis ou écrire dans le cache et s'il faut afficher la ressource dans une nouvelle fenêtre. Il peut être la somme de zéro ou plusieurs des valeurs suivantes : 

Constante

Valeur

Signification

navOpenInNewWindow

1

Ouvre la ressource ou le fichier dans une nouvelle fenêtre.

navNoHistory

2

N'ajoute pas la ressource ou le fichier à la liste d'historique La nouvelle page remplace la page actuelle dans la liste

navNoReadFromCache

4

Ne lit pas depuis le cache disque pour ce déplacement.

navNoWriteToCache

8

N'écrit pas les résultats de ce déplacement dans le cache disque.

navAllowAutosearch

16

Si la navigation échoue, le navigateur Web tente de se positionner en utilisant les domaines racine courants (.com, .edu, etc.). Si ceci échoue, l'URL est transmise au moteur de recherche.

TargetFrameName : est le nom du cadre dans lequel la ressource sera affichée ou NULL si celle-ci ne doit pas être affichée dans un cadre nommé.

 

 

PostData : contient les données envoyées au serveur quand Navigate est utilisée pour générer un message HTTP POST. Si PostData contient NULL, Navigate génère un message HTTP GET. PostData n'est pas pris en compte si URL ne spécifie par une URL HTTP.

 

 

Headers : contient tous les en-têtes envoyés aux serveurs quand l'URL représente une URL HTTP. Les en-têtes HTTP spécifient, par exemple, l'action qui est demandée au serveur, le type de données, etc. Voir l'objet TWebRequest dont les propriétés représentent la plupart des en-têtes courants.

 

 

Exemple de code :

 

 

Var
  URL : String;
  Flag, Cadre, PData, Header : OleVariant;
begin
  Flag := navOpenInNewWindow; // Ouvre la ressource ou le fichier dans une nouvelle fenêtre
  Flag := Flag + navNoHistory; // N'ajoute pas la ressource ou le fichier à la liste d'historique La nouvelle page remplace la page actuelle dans la liste.
  Cadre := Null;
  PData := Null;
  Header := Null;
  Url :='http://delphi32.free.fr';
  WebBrowser1.Navigate(URL,Flag,Cadre,PData,Header);
end;

 

 

Imprimer le document

Pour Imprimer le document avec Internet Explorer 4 ou supérieur, vous devez utiliser la propriété ContolInterface pour accéder à l'interface du composant WebBrowser (Cette interface permet à un contrôleur Automation d'accéder aux propriétés, méthodes et événements du navigateur Web.)

var
  vaIn, vaOut: OleVariant;
Begin
  WebBrowser.ControlInterface.ExecWB(OLECMDID_PRINT,   OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);

End;

Avec Internet Explorer 3, vous devez utiliser la méthode suivante

procedure TForm1.PrintIE;
var

  CmdTarget : IOleCommandTarget;
  vaIn, vaOut: OleVariant;
begin
  if
WebBrowser1.Document <> nil then
  try

    WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
    if CmdTarget <> nil then

    try

      CmdTarget.Exec( PGuid(nil), OLECMDID_PRINT,       OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
    
finally
      CmdTarget._Release;
    
end;
  except

    // Rien
  
end;
end;

Note: Si vous utilisez Delphi 2 ou 3, vous devez remplacer

PGuid(nil)
par
PGuid(nil)^

Comment utiliser le protocole About

Le protocole About vous permet d'afficher une chaine de caractère dans votre composant WebBrowser

Exemple :

procedure TForm1.Button1Click(Sender: TObject);
var
  Flags, TargetFrameName, PostData, Headers: OleVariant;
  SHTML : String;
begin

  
SHTML := '<P ALIGN="CENTER"><B><FONT SIZE="4" COLOR="black" FACE="Arial">ActiveX Internet Explorer</FONT></B>';

  WebBrowser1.Navigate('about:' + sHTML, Flags, TargetFrameName, PostData, Headers)
end;

Détecter si Internet Explorer est installé

Function IE_Installed : Boolean;
var

  Reg: TRegistry;
  s: String;
begin
  Reg:=TRegistry.Create;
  With Reg do Begin

  RootKey:=HKEY_LOCAL_MACHINE;
  OpenKey('Software\Microsoft\Internet Explorer', False);
  if ValueExists('Version') then S := ReadString('Version')
  else S :='';
  CloseKey;
  Free;
end;

  if
(length(S)>0) and (StrtoInt(s[1])>3) then result:=true else result:=false;
end;

Comment récupérer dans un mémo le source HTML de la page

Pour récupérer le source HTML dans un Mémo :

Memo1.Text := WebBrowser1.OleObject.Document.body.innerHTML;

 

 

Pour récupérer le texte du document dans un mémo :

 

 

Memo1.Text := WebBrowser1.OleObject.Document.body.innerText;

 

 

Vous pouvez remplacer le mémo par un StringList

 

 

Comment annuler l'ouverture d'une nouvelle fenêtre

Lorsque vous intégrez dans votre application l'objet TwebBrowser pour naviguer sur Internet, vous pouvez avoir dans les pages que vous visitez des liens qui s'ouvre dans une nouvelle fenêtre. Pour annuler l'ouverture d'internet Explorer, vous devez utiliser l'évènement OnNewWindow2

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin

  Cancel := TRUE
end;

 

 

Liste des liens dans le document

Internet Explorer vous permet d'obtenir la liste des liens qui sont dans votre document. la propriété Webbrowser1.OleObject.Document.links.length vous indique le nombre de liens présent dans votre document et la propriété Webbrowser1.OleObject.Document.links.item(i) contient les liens. Par exemple si vous souhaitez récupérer la liste des liens dans un Tmemo

procedure TForm1.SpeedButton6Click(Sender: TObject);
Var
  
I : Integer;
  
texte : String;
begin
  For
I:=0 to Webbrowser1.OleObject.Document.links.length-1 Do
  Begin
    
Memo1.lines.add(Webbrowser1.OleObject.Document.links.item(i));
  end;
end;

 

 

Nombre de frames

Certaines pages sont divisée en frames. Pour savoir le nombre de frames présent dans vote navigateur vous avez la propriété WebBrowser1.OleObject.Document.frames.length

Ensuite pour accéder à chacun de ses frames vous avez la propriété WebBrowser1.OleObject.Document.frames.item(i).Document

 

 

Information concernant la version installé d'IE

 

 

  Le Composant ieinstVer permet d'obtenir une serie d'information sur la version installé d'Internet Explorer (Numéro de version, niveau de Cryptage, le repertoire utilisé pour gérer les favoris, historiques, cookies, Cache Internet).
Les evènements suivant sont disponible sur ce composant :

  • OnIE1Installed : se déclenche quand la version 1 d'IE est installé
  • OnIE2Installed : se déclenche quand la version 2 d'IE est installé
  • OnIE3Installed : se déclenche quand la version 3 d'IE est installé
  • OnIE4Installed : se déclenche quand la version 4 d'IE est installé
  • OnIE5Installed : se déclenche quand la version 5 d'IE est installé
  • OnIE6Installed : se déclenche quand la version 6 d'IE est installé
  • OnIE_Installed : se déclenche quand IE est installé
  • OnNotIE_Installed : se déclenche quand IE n'est pas installé

 

 

Question ou Commentaire

N'hésitez pas à remplir ce formulaire.

Votre E-Mail
Votre Nom
Sujet
Message