|
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é
|
|
|
|