Programmation Orientée Objet sous Visual Basic

Ce qui suit est une description non exhaustif des fonctions de Visual Basic. Cette présentation est seulement destinée à rappeler les grands aspects nécessaires à la mise en œuvre de l’application proposée au sommaire (développement SIG)

I Visual Basic, un environnement de programmation
Visual Basic joue un rôle croissant dans l’environnement de l’entreprise, particulièrement depuis que ses capacités dans le domaine des bases de données ont été améliorées et  en font un puissant outil frontal de développement et de traitement.
II-1 Les trois volets de Visual Basic
Le travail avec Visual Basic peut se décomposer en trois phases distinctes qui, bien évidemment, se mêlent en permanence lors du développement d’un projet : Il est difficile en quelques mots de couvrir l’ensemble des domaines couverts par la POO. En effet, le sujet est vaste, et de nombreuses pages de manuels le couvrent en détail. Sans reprendre ces détails, il est néanmoins important de faire ressortir le principe de classe.

La Programmation Orientée Objet (P.O.O) est le processus de développement de une à plusieurs lignes d’instructions, basé sur des modèles de conception bien définis. Ces modèles de conception sont des illustrations graphiques qui représentent différents aspects des objets, les classes de ces objets desquelles sont dérivées les fonctions et les variables de propriétés, ainsi que leurs interactions mutuelles.

La P.O.O en Visual Basic est intéressante dans la mesure où les modules de classe permettent de structurer tout applications. Les collections donnent le moyen d’organiser et de structurer de façon flexible les objets créés, et la technologie ActiveX fournit le mécanisme de partage des objets entre utilisateurs qui les rend utilisables par d’autres. IL est ainsi possible d’appréhender l’organisation de projets beaucoup plus complexes, tout en gardant la structure du projet présente à l’esprit pendant la conception. L’approche Orientée Objet rend donc plus aisées la programmation en équipe et les projets individuels.

Un événement est semblable à une méthode ou une fonction, mais il est déclenché par une intervention humaine ou une action du système. Les feuilles Visual Basic possèdent par exemple leurs propres événements intégrés (Form_Load : Au chargement de la feuille faire…). IL est d’ailleurs possible d’activer ses propres événements.

II-3 Les trois modes de travail
Si le travail en Visual Basic peut se décomposer en trois étapes, il possède parallèlement trois modes de travail :
II Organisation des projets sous Visual Basic
II-1 Les feuilles
Composant de base de toute application Visual Basic, la feuille (form en anglais) est simplement une fenêtre windows standard. Celle-ci possède un certain nombre de propriétés comme chaque objet Visual Basic et possède une extension .frm. Ces feuilles sont de simples textes comportant une description de la feuille et des contrôles qu’elles contiennent, ainsi que le code correspondant. Les éléments supplémentaires (icône associée, images de fonds de feuille…) sont placés dans un fichier de même nom et qui possède comme extension .frx.
II-2 Les modules
Les modules ne contiennent que du code et n’offrent donc aucune interface graphique, contrairement aux feuilles précédemment abordées. Ils servent normalement à définir des déclarations ou des procédures utilisables par l’ensemble des feuilles de l’application. Ils permettent également de créer des « briques » logicielles réutilisables dans différentes applications. Ces fichiers textes possèdent l’extension .bas.
II-3 Le projet
Un projet est un fichier texte décrivant le contenu de l’application : feuilles (.frm), modules (.bas), contrôles personnalisés (.ocx, .exe), etc.. Ouvrir une application en mode création consiste donc simplement à lire ce texte, à la suite de quoi Visual Basic charge les fichiers dont il y trouve la référence. Les projets de Visual Basic portent l’extension .vbp.
III Accès et manipulation des bases de données au cœur de l’application
Il existe deux manières de manipuler des bases de données, il s’agit du contrôle Data intégré au RAD ou encore de l’objet D.A.O (Data Access Objet) dont les propriétés et les méthodes permettent aussi un accès aux BD.
III-1 Contrôle de données Data
Le contrôle Data est un objet VB intégré permettant la connexion à une base de données. Cette connexion s’effectue en deux étapes. En effet, on connecte d’abord le contrôle à la base de données en définissant la propriété DataBaseName, puis on le connecte à une table ou à une requête particulière à l’intérieur de la base de données en définissant la propriété RecordSource. Généralement, chaque contrôle Data ne se connecte qu’à une seule table ou requête. En complément, de nombreux autres types de contrôles, tels que les contrôles label ou listbox, ont aussi des propriétés qui effectuent la connexion finale à la base de données.

En fait, le contrôle Data ne fait pas grand-chose par lui-même. Il est indispensable alors d’ajouter d’autres contrôles associés. Quand il sont associés ou dépendants, ces contrôles deviennent des outils de travail sur la base de données. Néanmoins, le contrôle Data par lui seul ne permet pas de supprimer ou encore de rechercher des enregistrements spécifiques contrairement à l’objet D.A.O beaucoup plus flexible. Le choix du modèle D.A.O pour la gestion des bases de données et donc justifié.

III-2 Moteur Microsoft Jet et les commandes D.A.O
Jet est un moteur de base de données natif à Visual Basic et à Access. Il gère donc les informations en traduisant les requêtes de l’application en opérations physiques réelles dans la base de données, et se situe ainsi entre l’application et les fichiers de base de données pour tous les types de transaction dans un sens ou dans l’autre. Jet n’est pas un programme unique mais un ensemble de fichiers de bibliothèque de liaisons dynamiques (dll) automatiquement liés aux programme Visual Basic à l’exécution.

Une des meilleures façons de comprendre l’organisation des objets dans Visual Basic est d’étudier une carte qui en montre la hiérarchie (appelée un modèle d’objet). La hiérarchie des objets accès aux données est indiquée par la figure 9. Cette carte permet de visualiser efficacement l’intégration des collections et des objets dans l’organisation générale du système et à trouver immédiatement la syntaxe qui permet d’accéder à ces objets imbriqués. Une collection d’objets est aussi une notion intéressante dans la mesure ou elle permet de générer des traitements globaux (boucles…). Par exemple, il existe un objet workspace, et il existe aussi une collection workspaces, dont workspace(0) est le premier objet workspace. Tous les noms d’objets obéissent à la même règle : le pluriel du nom d’un objet désigne la collection correspondante. On notera cependant que le seul objet accès aux données DBEngine ne fait pas partie d’une collection.

L’objet D.A.O est une interface de programmation permettant d’accéder et de manipuler des objets de base de données. L’objet DBEngine est l’objet de niveau supérieur du modèle objet D.A.O. Il contient et contrôle tous les objets de la hiérarchie d’objets D.A.O. D’ailleurs, il est impossible de créer des objets DBEngine supplémentaires. L’objet DBEngine n’appartient à aucune collection.

Avec tout type de base de données ou de connexion, il est possible d’utiliser :


D’autres propriétés et méthodes sont disponibles, à condition d’utiliser les objets D.A.O avec le moteur de base de données Microsoft Jet. Elles permettent de contrôler le moteur de base de données Microsoft Jet, de manipuler ses propriétés et d’exécuter des opérations sur les objets temporaires n’appartenant pas à des collections.

Il est aussi possible par exemple d’utiliser :

IV-1 Fonctions A.P.I de Windows
 L’A.P.I windows est constituée de plusieurs centaines de fonctions et de routines localisées dans un ensemble de fichiers appelés librairies dynamiques ou DLL (Dynamic Link Libraries). Pour rendre une fonction A.P.I Windows disponible pour une application Visual Basic, il suffit de déclarer cette fonction pour qu’elle puisse être appelée et utilisée par le programme.

 Les librairies dynamiques (DLL) qui constituent l’A.P.I Windows sont généralement situées dans le sous-répertoire System de Windows.

 Il existe plusieurs façon d’utiliser les fonctions A.P.I dans une application. Les fonctions de définition des fenêtres ou d’obtention d’informations sur les fenêtres sont utiles dans le cadre de la gestion des affichages. En effet, chaque fenêtre Windows est référencée par un handle. Pour appliquer certaines méthodes ou rechercher certaines propriétés d’une fenêtre, la fonction A.P.I GetActiveWindow permet de retourner le handle d’ou une déclaration de cette fonction comme suit : Declare Function GetActiveWindow Lib « user32 » () As Long.

IV-2 Contrôles et composants Active X (ocx, dll..)
L’un des mots à la mode les plus incontournables dans les milieux du développement VB est certainement ActiveX étant donné que ce logiciel est centré autour de cette technologie, qu’il s’agisse de contrôles, de documents, de DLL, d’EXE ActiveX.

La technologie ActiveX : Pour faciliter la communication d’une application à l’autre ainsi que la réutilisation de fonctions courantes, Microsoft a développé une technologie baptisée ActiveX. Celle-ci reprend les grands principes de OLE (voir ci-après). Les ActiveX se présentent sous forme de contrôles (logiciel structuré comme objet à intégrer dans un projet), de programmes (logiciel compilé) ou de scripts (suite d’instructions interprété par un système). Ils sont principalement développés en VB Script et VB. Cette technologie consiste à accélérer et à amplifier le partage des données entre applications.

IV-3 Composants Office 95 et 97 avec Visual Basic
Même si Visual Basic est un langage puissant, il arrive que les composants dont l’utilisateur a besoin existent déjà dans d’autres applications. Au lieu de réécrire ces composants, il devient alors judicieux de les « emprunter » à une autre application.

Toutes les applications de la suite Microsoft Office sont basées sur des librairies d’objets qui contiennent de nombreux composants externes. Microsoft Excel, par exemple, met à disposition des objets tels que des feuilles de calcul ou des graphiques. Visual Basic, en faisant appel au contrôle OLE container ou à Automation, permet d’utiliser ces types d’objets dans les applications développées.

IV-3-1 Contrôle OLE
OLE est un raccourci pour Object Linking and Embedding, et sa fonction principale consiste à permettre aux objets ou aux documents d’être liés ou incorporés dans des applications. Si la liaison et l’incorporation offrent toutes deux la possibilité à une application (le serveur) d’être ajoutée à une autre application (le conteneur), elles utilisent chacune une méthode différente pour ce faire. Lorsqu’un objet est lié, l’application du destinataire ne reçoit pas l’objet, mais une référence à l’objet.  A l’inverse, les

objets incorporés (et leurs données) résident à l’intérieur due l’application du destinataire. En plus de ces fonctions de liaison et d’incorporation, OLE offre des fonctionnalités telles que le stockage et la réutilisabilité d’objets. Les contrôles ActiveX de la boîte à outil VB sont basés sur la technologie OLE. L’extension .OCX (OLE Custom Control) a d’ailleurs été donnée aux composants ActiveX parce qu’ils communiquaient via des interfaces OLE 32 bits.

OLE est la pierre angulaire du système d’exploitation windows comme Visual Basic. Il fournit un moyen pour les applications de communiquer les unes avec les autres et de partager les composants des autres. IL est possible par exemple d’ajouter les fonctionnalités des différentes applications Office 97 (comme Excel et World) directement dans une application VB.

IV-3-2 Technologie Automation
Une autre façon d’intégrer les composants issus de Microsoft Office ou d’autres applications (dans notre cas Autodesk World compatible VBA) est d’utiliser Automation. Ce composant ne nécessite pas l’utilisation de contrôles OLE. En effet, il suffit de définir des objets de différentes classes dans le code pour avoir accès aux centaines de classes d’objets qui ont été utilisées pour réaliser les applications Microsoft Office. Il en ressort donc que l’utilisation d’Automation requière la connaissance des différentes classes disponibles sur le système. Pour intégrer une nouvelle référence à un composant, l’utilisateur ouvrira une fenêtre « Référence » à partir de laquelle il choisira les librairies d’objets à « piloter ». Ensuite, il pourra se familiariser avec propriétés et méthodes de chaque objet en consultant l’Explorateur d’objets ». Il ne lui restera plus qu’à créer une référence dans le code pour accéder à toutes les classes descendantes. (voir les chapitres se référants aux différentes applications pilotées).
V corollaires de la programmation
La facilité d’utilisation de Visual Basic peut masquer le besoin d’un style de programmation cohérent, mais ce besoin croît avec la taille des programmes créés. Déboguer un programme d’une centaine de lignes est facile, cela devient difficile pour un programme de 10000 lignes si le développeur n’utilise pas un système quelconque d’organisation. Le besoin de règles se fait plus pressant encore quand le code est écrit par plusieurs personnes ou quand le projet doit être maintenu sur une durée assez longue.

L’objectif de tout style de programmation, c’est avant tout la cohérence et la clarté. Un bon style de programmation réduit la possibilité d’erreurs et diminue le temps nécessaire à la lecture et à la compréhension du code. Les règles de style de programmation doivent porter sur la dénomination, la portée et les commentaires. On suivra donc les règles générales suivantes :