6.8.Déploiement d'une fiche ActiveX
sur le Web avec Delphi
Plan du chapitre:1. Utilisation de l'expert de déploiement Web de Delphi
Utiliser l'expert ActiveForm pour créer un contrôle ActiveX
Utiliser l'expert de page propriétés ActiveX
Recenser le contrôle ActiveX
Déployer le controle ActiveX sur le web
Delphi propose un expert pour le déploiement ActiveX :
On ne traitera dans ce
chapitre que le développement d'activeX basé sur une fiche VCL
et destiné au déploiement sur le Web (Pour la création
d'un composant contrôle ActiveX, voir le chapitre "Construction d'un
contrôle ActiveX").
La coclasse TActiveFormX
= class(TActiveForm, IActiveFormX) représente une fiche ActiveX, c'est
un contrôle ActiveX fondé sur une fiche VCL sur laquelle vous
pouvez déposer n'importe lequel des composants de la palette de Delphi
d'où un gain de temps de développement.
La fiche ActiveX ainsi créée peut être déployée
sur le Web : la fiche ActiveForm est ensuite affichable et exécutable
à l'intérieur d'une page html dans un navigateur Web (Internet
Explorer). Dans le navigateur Web, la fiche se comporte comme une application
autonome et peut mettre en œuvre des actions complexes. Les fiches ActiveX
sont les "concurrents" (mono-plateforme) des applets Java (multi-plate-forme).
Utiliser l'expert contrôle ActiveForme
Pour créer une
Fiche ActiveX basée sur une fiche VCL, la démarche est sensiblement
la même que pour créer un contrôle ActiveX, nous allons
procéder à une création d'une telle fiche pas à
pas sur un exemple.
Etape-1°) Construction de la fiche de base
Delphi envoie un formulaire
de saisie d'information sur le paramétrage de création du contrôle
ActiveX qui hérite obligatoirement de TActiveForm, nous lui indiquons
éventuellement le nom de la classe et celui de la unit (nous laissons
le modèle de thread par défaut) :
A ce stade, l'expert
génère comme au paragraphe précédent, 3 fichiers
intermédiaires (de 21 +349 +334 = 704 lignes) et propose une
fiche visuelle vierge sur laquelle on peut insérer des contrôles
et travailler avec la fiche comme on le ferait pour toute application Delphi.
Nous programmons la recopie du texte de l'Edit2 dans l'Edit1 lorsque l'on
clique sur le Button1, comme pour une application, Delphi nous propose le
squelette du gestionnaire d'événement OnClick du Button1 que
nous remplisson avec notre ligne de code de copie :
procedure TActiveFormX.Button1Click(Sender: TObject);
begin
Edit1.Text:=Edit2.Text
end;
Nous supposons nous arrêter à ce stade et passer à la suite de la création de l'ActiveX.
Etape-2°) Recensement
de la fiche ActiveX ainsi construite (ActiveFormProj1.ocx)
Etape-3°)
Déploiement sur le web
Avant de pouvoir utiliser
dans un client Web, comme Internet Explorer, la fiche ActiveFormProj1.ocx
ainsi créée, il faut la déployer sur le serveur. A chaque
fois que la fiche ActiveX est modifiée, elle doit être recensée
de nouveau et re-déployée afin que les modifications soient
effectives.
Pour déployer un contrôle ActiveX, il est nécessaire
de disposer d'un serveur Web Web (IIS pour notre exemple). Par contre, il
n'est pas obligatoire d'enregistrer le contrôle dans la palette de
composant puisque, en général, le composant web créé
est dédié à une application web particulière.
Delphi engendre un fichier ActiveFormProj1.htm permettant de tester la fiche
ActiveX :
<HTML>
<H1> Page de test ActiveX Delphi 7 </H1><p>
Vous devez voir vos fiches Delphi 7 ou contrôles imbriqués dans la fiche ci-dessous.
<HR><center><P>
<OBJECT
classid="clsid:F9A089C7-B331-404E-B21F-4541846FA390"
codebase="http://localhost/ActiveFormProj1.ocx#version=1,0,0,0"
width=350
height=250
align=center
hspace=0
vspace=0 >
</OBJECT>
</HTML>
Si vous avez installé
un serveur web sur votre machine IIS par exemple alors l'exécution
du fichier ActiveFormProj1.htm dans le navigateur IE donne la page html de
test suivante :
Quand cette page HTML
est visualisée dans le navigateur Web, la fiche est affichée
et exécutée comme application incorporée dans le navigateur.
C'est-à-dire qu'elle s'exécute dans le même processus
que le navigateur.
Cela crée la base du code de déploiement contenant le contrôle ActiveX dans une bibliothèque ActiveX (ayant l'extension OCX). Selon les options spécifiées, cette base du code de déploiement peut aussi contenir un fichier cabinet (ayant l'extension CAB) ou d'information (ayant l'extension INF).
La bibliothèque ActiveX est placée dans le Répertoire destination spécifié à l'étape précédente. Le fichier HTML porte le même nom que le projet mais avec l'extension .HTM. Il est créé dans le Répertoire HTML spécifié à l'étape précédente. Le fichier HTML contient une URL faisant référence à la bibliothèque ActiveX à l'emplacement spécifié à l'étape précédente.