Création d'une fiche active VCL ActiveX
Remonter à Comment construire des applications Fiches VCL
Comme un contrôle Delphi, un contrôle ActiveX génère du code de programme lorsque vous placez le composant sur une fiche ou un autre conteneur logique dans l'EDI. La principale différence entre un contrôle ActiveX et un contrôle Delphi réside dans le fait qu'un contrôle ActiveX est indépendant du langage. Vous pouvez créer des contrôles ActiveX pour le déploiement vers plusieurs environnements de programmation sur Windows, pas seulement Delphi ou C++Builder, par exemple.
Cette procédure utilise l'expert Contrôle ActiveX ou Fiche Active pour créer une fiche active contenant deux composants. L'expert utilise une fiche VCL pour créer la fiche Active. Pour tester la fiche Active, vous pouvez l'ouvrir en utilisant un simple fichier HTML et un navigateur Web. Cette procédure est constituée des étapes majeures suivantes :
- Créer un projet Bibliothèque ActiveX et une fiche active ActiveX.
- Ajouter un bouton et un code de gestion d'événement
- Tester la fiche active.
Sommaire
Pour créer un projet Bibliothèque ActiveX et une fiche active ActiveX
- Créez un répertoire sur votre disque local pour le projet ActiveX. Attribuez-lui un nom facile à trouver, par exemple ActiveX.
- Choisissez l'une des commandes suivantes :
- Fichier > Nouveau > Autre > Projets C++Builder > ActiveX > Bibliothèque ActiveX
- Fichier > Nouveau > Autre > Projets Delphi > ActiveX > Bibliothèque ActiveX
- Cela crée un projet DLL (Dynamic Link Library) que vous pouvez utiliser pour héberger des objets ActiveX en processus.
- Choisissez l'une des commandes suivantes :
- Fichier > Nouveau > Autre > Projets C++Builder > ActiveX > ActiveForm
- Fichier > Nouveau > Autre > Projets Delphi > ActiveX > ActiveForm
- L'expert Fiche Active s'affiche.
- Acceptez les paramètres par défaut et cliquez sur OK. L'expert génère le code nécessaire à l'implémentation du contrôle ActiveX et ajoute le code au projet. Une fiche active ActiveX s'affiche.
Pour ajouter un bouton et un événement à la fiche active
- A partir de la page Standard de la palette d'outils, ajoutez des composants TEdit et TButton sur la fiche.
- Sélectionnez le bouton.
- Sur l'onglet Evénements de l'inspecteur d'objets, double-cliquez sur l'événement OnClick. L'éditeur de code s'ouvre avec le curseur placé dans le bloc du gestionnaire d'événements pour :
- TActiveFormX.Button1Click (Delphi)
- TActiveFormX::Button1Click() (C++).
- Entrez le code suivant au niveau du curseur :
- Delphi:
ShowMessage(Edit1.Text);
- C++:
ShowMessage(Edit1->Text);
- Enregistrez les fichiers du projet dans votre répertoire ActiveX.
Pour tester la fiche active
Après la création, la construction et le recensement de votre fiche active, vous pouvez l'héberger dans un navigateur Web en utilisant un simple fichier HTML tel que celui-ci :
<html> <body> <h1>Active Form</h1> <object classid="clsid:3E46CAEF-520F-4B9F-B152-00FF2E006F88" codebase="AnActiveForm.ocx" width=700 height=250 align=center hspace=0 vspace=0> </object> </body> </html>
Dans le HTML ci-dessus, les deux éléments que vous devez changer sont les valeurs de :
classid
(le GUID de la CoClasse de la fiche active)codebase
(le nom de la bibiothèque Active qui contient la fiche active ; avec l'extension .ocx ou .dll)
-
Dans l'unité <projet>_TLB, cherchez l'identificateur
classid
(la valeur GUID sous-jacente). Voici le code de l'exemple ci-dessus :// *********************************************************************// // GUIDS declared in the TypeLibrary. Following prefixes are used: // Type Libraries : LIBID_xxxx // CoClasses : CLASS_xxxx // DISPInterfaces : DIID_xxxx // Non-DISP interfaces: IID_xxxx // *********************************************************************// const CLASS_TestActiveForm: TGUID = '{3E46CAEF-520F-4B9F-B152-00FF2E006F88}';
Ainsi, dans cet exemple,
classid
a la valeur 3E46CAEF-520F-4B9F-B152-00FF2E006F88. -
Cherchez la valeur
codebase
correcte en examinant le code de recensement de la fabrique (Factory). Lecodebase
est le quatrième paramètre lors de la construction de la fabrique, et a pour préfixe "Class_" :initialization TActiveFormFactory.Create( ComServer, TActiveFormControl, TTestActiveForm, Class_TestActiveForm, 1, '', OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL, {$IFDEF SINGLE_THREADED} tmSingle); {$ELSE} tmApartment); {$ENDIF}
Ainsi le
codebase
est ici TestActiveForm. -
Editez le fichier HTML et insérez vos valeurs spécifiques pour
codebase
etclassid
. Enregistrez le fichier. -
A l'aide d'un navigateur Web tel que Internet Explorer, ouvrez le fichier HTML.
La fiche active s'affiche dans la fenêtre du navigateur.
-
Cliquez sur le bouton. Un dialogue contextuel affiche le texte dans la zone d'édition.
-
Changez le texte et cliquez à nouveau sur le bouton. Le nouveau texte que vous avez entré s'affiche dans le dialogue contextuel.