Génération d'un contrôle ActiveX à partir d'un contrôle VCL
Remonter à Utilisation des contrôles ActiveX - Index
Pour générer un contrôle ActiveX à partir d'un contrôle VCL, utilisez l'expert Contrôle ActiveX. Les propriétés, méthodes et événements du contrôle VCL deviennent les propriétés, méthodes et événements du contrôle ActiveX.
Avant d'utiliser l'expert Contrôle ActiveX, vous devez choisir le contrôle VCL qui fournira l'implémentation sous-jacente du contrôle ActiveX généré.
Pour exécuter l'expert Contrôle ActiveX
- Sélectionnez l'une des options 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.
- Sélectionnez l'une des options suivantes :
- Fichier > Nouveau > Autre > Projets C++Builder > ActiveX > Contrôle ActiveX
- Fichier > Nouveau > Autre > Projets Delphi > ActiveX > Contrôle ActiveX
- Dans l'expert Contrôle ActiveX, sélectionnez le nom du contrôle VCL qui sera encapsulé par le nouveau contrôle ActiveX. Le dialogue liste tous les contrôles disponibles, c’est-à-dire les descendants de TWinControl qui ne sont pas recensés comme incompatibles avec ActiveX en utilisant la procédure RegisterNonActiveX.
Conseil : Si vous ne voyez pas le contrôle souhaité dans la liste déroulante, vérifiez que vous l'avez installé dans l'EDI ou que vous avez ajouté son unité à votre projet.
Dès que vous avez sélectionné un contrôle VCL, l'expert Contrôle ActiveX génère automatiquement un nom pour la CoClasse, l'unité d'implémentation pour le wrapper ActiveX et le projet de bibliothèque ActiveX. Si un projet de bibliothèque ActiveX est déjà ouvert et qu'il ne contient pas d'objet événement COM+, le projet en cours est automatiquement utilisé. Vous pouvez changer ces noms dans l'expert sauf si un projet de bibliothèque ActiveX est déjà ouvert, auquel cas le nom du projet n'est pas modifiable.
L'expert spécifie toujours Apartment pour le modèle de thread. Cela ne pose pas de problème si votre projet ActiveX ne contient qu'un seul contrôle. Cependant, si vous ajoutez d'autres objets à votre projet, c'est à vous de fournir la prise en charge des threads.
Voir l'expert Contrôle ActiveX ou Fiche Active pour obtenir des informations sur les diverses options que vous pouvez définir pour votre contrôle ActiveX.
Quand vous quittez l'expert, il génère :
- Un fichier projet de bibliothèque ActiveX qui contient le code nécessaire pour démarrer un contrôle ActiveX. Généralement, vous ne modifierez pas ce fichier.
- Une bibliothèque de types qui définit une CoClasse pour votre contrôle, l'interface qu'elle expose aux clients et les définitions de types qui leurs sont nécessaires. Pour de plus amples informations sur la bibliothèque de types, voir Utilisation des bibliothèques de types - Présentation.
- Une unité d'implémentation ActiveX, qui définit et implémente le contrôle ActiveX, un descendant de TActiveXControl. Ce contrôle ActiveX est une implémentation entièrement fonctionnelle qui ne nécessite aucun travail supplémentaire de votre part. Vous pouvez cependant modifier cette classe si vous voulez personnaliser les propriétés, méthodes et événements que le contrôle ActiveX expose aux clients.