– Éléments fondamentaux sur les composants
– Ajout de classes aux composants
– Ajout de propriétés et de méthodes aux classes
– Ajout d’événements aux classes
– Attribution de constantes nommées à votre composant
– Communications privées entre les objets
– Mise à disposition du polymorphisme par l’implémentation des interfaces
– Organisation des objets : le modèle objet
Éléments fondamentaux sur les composants
Un composant logiciel créé à l’aide de Visual Basic est un fichier contenant du code exécutable (un fichier .exe, .dll ou .ocx) qui fournit des objets utilisables par d’autres applications et d’autres composants. Une application ou un composant qui utilise des objets fournis par d’autres composants logiciels est désigné sous le nom de client. Un client utilise les services d’un composant logiciel en créant des instances des classes fournies par le composant, et en appelant leurs propriétés et leurs méthodes. Dans les versions antérieures de Visual Basic, vous pouviez créer des composants appelés serveurs OLE. Les fonctions des composants créés par Visual Basic ont été considérablement étendues et offrent une meilleure prise en charge des rappels asynchrones ainsi que la possibilité de déclencher des événements et de fournir des documents et des contrôles ActiveX.
Composants in-process et out-of-process
Une application ou un composant qui utilise des objets fournis par un autre composant est désigné sous le nom de client.
Les composants se caractérisent par leur intégration dans les clients. Un composant out-of-process est un fichier .exe qui est exécuté dans son propre processus, avec sa propre thread d’exécution. La communication entre un client et un composant out-of-process porte donc le nom de communication interprocessus ou out-of-process. Un composant in-process, notamment un fichier .dll ou .ocx, exécute le même processus que le client. C’est la manière la plus rapide d’accéder aux objets car les appels aux propriétés et aux méthodes ne sortent pas des limites du processus.
Toutefois, un composant in-process doit utiliser la thread d’exécution du client.
Importance des noms
Les noms que vous sélectionnez pour vos modules de classe et pour leurs propriétés, méthodes et événements constituent la ou les interfaces par l’intermédiaire desquelles il sera possible d’accéder à votre composant. Lorsque vous nommez ces éléments, ainsi que leurs paramètres nommés, vous pouvez aider l’utilisateur de votre composant en respectant quelques règles très simples.
– Dans la mesure du possible, utilisez des mots complets, par exemple « Correcteur Orthographique ». Les abréviations peuvent prendre des formes diverses et donc engendrer une certaine confusion. Si des mots entiers sont trop longs, limitez-vous à leur première syllabe.
– Utilisez les majuscules et les minuscules dans vos identificateurs. Commencez chaque mot ou chaque syllabe par une majuscule, par exemple Raccourcis Clavier ou Lecture Asynchrone Complete.
– Utilisez le mot que les utilisateurs choisiraient pour décrire un concept. Par exemple, utilisez Nom plutôt que Label.
– Utilisez le pluriel correct pour les noms de classe de collection, par exemple Feuilles De Travail, Formulaires ou Élements Interface. Si la collection renferme des objets dont le nom se termine par la lettre « s », ajoutez le mot Collection, par exemple Listes Collection.
Choix d’un type de projet et définition des propriétés du projet
Lorsque vous ouvrez un nouveau projet, trois types de projet s’offrent à vous : EXE ActiveX, DLL ActiveX et contrôle ActiveX. Votre choix détermine les sortes d’objets susceptibles d’être fournis par votre composant. La liste suivante peut vous aider à sélectionner le type de projet le mieux adapté à votre composant.
1. Si votre composant va fournir des contrôles ActiveX, ouvrez un nouveau projet contrôle ActiveX. Les contrôles ne peuvent être fournis que par des contrôles composants (fichiers .ocx) qui doivent être compilés à partir de projets contrôle ActiveX. Les contrôles composants sont toujours exécutés dans le processus. Note Les contrôles composants sont limités lorsqu’il s’agit de fournir d’autres types d’objets, car les modules de classe des projets contrôle ActiveX n’acceptent que deux valeurs de la propriété Instancing, à savoir Public Not Creatable ou Private. Les objets des contrôles composant sont mieux adaptés à l’amélioration des fonctions contrôles. Les objets qui possèdent d’autres utilisations doivent être placés dans un projet DLL ActiveX distinct.
Définition d’autres propriétés
Selon le type de composant créé, d’autres propriétés de projet devraient retenir votre attention.
Mode d’exécution autonome
Située dans l’onglet Général, cette propriété peut être définie pour des composants de code qui ne nécessitent aucune intervention de la part de l’utilisateur. Dans un projet DLL ActiveX, cela définit la DLL comme étant à threads sécurisées (par l’intermédiaire de l’ordonnancement cloisonné de threads).Dans un projet EXE ActiveX, cette propriété permet au composant d’être multithread. Les conséquences et les limites inhérentes à cette propriété sont décrites au chapitre 8, « Construction de composants de code ».
…..