Création d’un contrôle ActiveX

– Création du projet ControlDemo
– Ajout du projet TestCtlDemo
– Exécution du contrôle ShapeLabel au moment de la conception
– Points importants de l’existence d’un objet UserControl
– Dessin du contrôle ShapeLabel
– Enregistrement des valeurs de propriétés du contrôle ShapeLabel
– Association d’une page de propriétés au contrôle ShapeLabel
– Ajout d’un événement au contrôle ShapeLabel
– Compilation du composant ControlDemo
– Récapitulatif de la création de contrôles

Exemple d’application : CtlPlus.vbg

Ajoute les propriétés, méthodes et événements nécessaires pour que le contrôle ShapeLabel soit fonctionnel. Complète les informations de ce chapitre, en présentant d’autres aspects de la création de contrôles, sans aborder les points élémentaires traités dans les procédures étape par étape. Si vous avez installé les exemples d’application, vous les trouverez dans le sous-dossier \CompTool\ActvComp du dossier d’exemples
de Visual Basic (\Vb\Samples\CompTool\ActvComp).Il sera plus aisé de suivre ces procédures si vous configurez d’abord l’environnement
de développement de Visual Basic de manière à afficher les fenêtres nécessaires.

– Avant de commencer

1 Dans le menu Affichage, cliquez sur Boîte à outils.
2 Dans le menu Affichage, cliquez sur Explorateur de projets pour ouvrir la fenêtre Explorateur de projet. Celle-ci sera fréquemment utilisée pour changer de fichier de projet.
3 Si la fenêtre Explorateur de projet est en affichage dossier, comme dans l’exemple ci-dessous, cliquez sur le bouton Basculer les dossiers sur la barre d’outils de la fenêtre Explorateur de projet pour désactiver les dossiers.

Création du projet ControlDemo

Des contrôles ActiveX peuvent être insérés dans toutes sortes de projets. Cependant,un contrôle compilé au sein d’un fichier .exe ne peut être partagé avec d’autres applications. La compilation du contrôle ShapeLabel est réalisée dans la suite de ce chapitre pour générer un fichier .ocx, afin de pouvoir être partagé. Le projet ControlDemo prendra ainsi la forme d’un projet de contrôle ActiveX.
Un projet de contrôle ActiveX peut contenir un nombre illimité de contrôles. Le fichier .ocx obtenu par compilation du projet contient l’ensemble de ces contrôles.

LIRE AUSSI :  Mise à disposition des compléments dans l’environnement IDE Visual Basic

Ajout du projet TestCtlDemo

Pour expérimenter le contrôle ShapeLabel, il vous faut une feuille de test. Il n’est pas possible d’ajouter une feuille de test à ControlDemo et d’exécuter directement le projet, car un projet .ocx ne peut être exécuté de façon isolée. En effet, cela équivaudrait à exécuter seul un fichier .ocx.
Afin de permettre le débogage des composants in-process (.ocx, .dll), Visual Basic permet de charger deux projets ou plus dans un groupe de projets. Le groupe de projets permet de faciliter le débogage in-process, ainsi que le chargement du projet .ocx et du projet test.

Exécution du contrôle ShapeLabel au moment de la conception

Contrairement aux autres objets programmables, les contrôles ont des comportements en mode Création et des comportements en mode Exécution. En d’autres termes, une partie du code du contrôle est exécuté lorsqu’un développeur place une instance du contrôle sur une feuille au moment de la conception. Par exemple, le code placé dans la procédure d’événement UserControl_Resize sera exécuté au moment de la conception et de l’exécution. Pour déboguer le comportement d’exécution d’un contrôle, il vous faut exécuter le code de ce contrôle alors que la feuille de test sur laquelle le contrôle est placé reste en mode Création.
Les deux procédures qui suivent vous révèlent l’astuce. Dans la première, vous ajoutez du code à l’événement Resize du contrôle ShapeLabel. Dans la seconde, vous placez une partie du projet ControlDemo en mode Exécution, alors que le reste du projet est en mode Création, puis vous ajoutez une instance du contrôle ShapeLabel sur une feuille du projet test.

Création d’un contrôle ActiveX

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *