Création d'une fiche active VCL ActiveX

De RAD Studio
Aller à : navigation, rechercher

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 :

  1. Créer un projet Bibliothèque ActiveX et une fiche active ActiveX.
  2. Ajouter un bouton et un code de gestion d'événement
  3. Tester la fiche active.

Pour créer un projet Bibliothèque ActiveX et une fiche active ActiveX

  1. Créez un répertoire sur votre disque local pour le projet ActiveX. Attribuez-lui un nom facile à trouver, par exemple ActiveX.
  2. Choisissez l'une des commandes suivantes :
    Cela crée un projet DLL (Dynamic Link Library) que vous pouvez utiliser pour héberger des objets ActiveX en processus.
  3. 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.
  4. 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

  1. A partir de la page Standard de la palette d'outils, ajoutez des composants TEdit et TButton sur la fiche.
  2. Sélectionnez le bouton.
  3. 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 :
  4. TActiveFormX.Button1Click (Delphi)
  5. TActiveFormX::Button1Click() (C++).
  6. Entrez le code suivant au niveau du curseur :
    • Delphi:
 ShowMessage(Edit1.Text);
  • C++:
 ShowMessage(Edit1->Text);
  1. 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)
  1. 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.

  2. Cherchez la valeur codebase correcte en examinant le code de recensement de la fabrique (Factory). Le codebase 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.

  3. Editez le fichier HTML et insérez vos valeurs spécifiques pour codebase et classid. Enregistrez le fichier.

  4. 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.

  5. Cliquez sur le bouton. Un dialogue contextuel affiche le texte dans la zone d'édition.

  6. Changez le texte et cliquez à nouveau sur le bouton. Le nouveau texte que vous avez entré s'affiche dans le dialogue contextuel.

Voir aussi