Eléments d'un contrôle ActiveX

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des contrôles ActiveX - Index


Un contrôle ActiveX implique plusieurs éléments qui ont chacun une fonction spécifique. Ces éléments sont un contrôle VCL, un objet enveloppe COM correspondant qui expose des propriétés, des méthodes, des événements, et une ou plusieurs bibliothèques de types associées.

Contrôle VCL

Dans Delphi, l'implémentation sous-jacente à un contrôle ActiveX est un contrôle VCL. Quand vous créez un contrôle ActiveX, vous devez commencer par concevoir ou choisir le contrôle VCL à partir duquel vous aller construire votre contrôle ActiveX.

Le contrôle VCL sous-jacent doit être un descendant de TWinControl car il doit disposer d'une fenêtre qui peut être accueillie par l'application hôte. Quand vous créez une fiche active, cet objet est un descendant de Vcl.AxCtrls.TActiveForm.

Remarque :  L'expert contrôle ActiveX énumère les descendants TWinControl dans lesquels vous pouvez choisir pour créer un contrôle ActiveX. Néanmoins, cette liste ne propose pas tous les descendants TWinControl. Certains contrôles, comme THeaderControl, sont répertoriés comme incompatibles avec ActiveX (en utilisant la procédure RegisterNonActiveXprocedure) et n'apparaissent pas dans cette liste.

Enveloppe ActiveX

Le véritable objet COM est un objet ActiveX qui encaspule le contrôle VCL. Pour les fiches actives, cette classe est toujours axctrls.TActiveFormControl. Pour les autres contrôles ActiveX, elle a un nom de la forme TVCLClassX, où TVCLClass est le nom de la classe du contrôle VCL. Ainsi, par exemple, l'enveloppe ActiveX de TButton se nommerait TButtonX.

La classe enveloppe est un descendant de axctrls.TActiveXControl, qui gère les interfaces ActiveX. L'enveloppe ActiveX en hérite, ce qui lui permet de retransmettre les messages Windows au contrôle VCL et d'accueillir sa fenêtre dans l'application hôte.

L'enveloppe ActiveX expose les propriétés et méthodes du contrôle VCL aux clients en utilisant son interface par défaut. Vous devez implémenter les propriétés et les méthodes de classe enveloppe en déléguant les appels de méthode au contrôle VCL sous-jacent. Vous devez également fournir à la classe enveloppe les méthodes qui déclenchent les événements du contrôle VCL dans les clients et affecter ces méthodes aux gestionnaires d'événements du contrôle VCL.

Bibliothèque de types

Vous devez générer pour votre contrôle ActiveX une bibliothèque de types contenant les définitions de types pour la classe enveloppe, son interface par défaut et toutes les définitions de types nécessaires. Ces informations de type permettent au contrôle d'informer les applications hôtes de ses services. Vous pouvez visualiser et modifier ces informations en utilisant l'éditeur de bibliothèques de types. Même si ces informations sont stockées dans un fichier de bibliothèque de types binaire séparé (d'extension .TLB), vous pouvez également le compiler sous forme de ressource dans la DLL du contrôle ActiveX.

Page de propriétés

Vous pouvez éventuellement attribuer à votre contrôle ActiveX une page de propriétés. La page de propriétés permet à l'utilisateur de l'application hôte (le client) de visualiser et de modifier les propriétés du contrôle. Vous pouvez regrouper plusieurs propriétés dans une page ou utiliser une page pour proposer une interface de type boîte de dialogue à une propriété. Pour de plus amples informations sur la manière de créer des pages de propriétés, voir Création d'une page de propriétés pour un contrôle ActiveX.