Avant de commencer à coder
La partie la plus importante (et souvent négligée) de la création d’une application dans Visual Basic est la phase de conception. La nécessité de concevoir une interface utilisateur pour l’application est évidente ; la nécessité de structurer le code l’est moins. Différentes méthodes de création d'applications peuvent entraîner des différences dans les performances des applications, ainsi que dans la maintenabilité et la convivialité du code. Le code de l'application Visual Basic est organisé de manière hiérarchique. Une application typique se compose de plusieurs modules : un module de formulaire pour chaque formulaire de l'application, des modules standard facultatifs qui partagent du code et des modules de classe facultatifs. Chaque module contient plusieurs processus contenant du code : processus événementiel, sous-processus ou processus de fonction et processus PRperty. Déterminer quel processus appartient à quel module a une certaine relation avec le type d'application en cours de création. Visual Basic étant basé sur des objets, il est utile de penser aux applications en termes d'objets qu'elles représentent. Dans ce chapitre, l'exemple d'application Vcr.vbp est conçu à partir des objets constitués d'un magnétoscope et d'un téléviseur. L'application VCR contient deux modules de formulaire, un module standard et deux modules de classe. Le « Object Browser » peut être utilisé pour examiner la structure du projet (Figure 5.2).
La forme principale de l'application magnétoscope (frmVCR) est l'image visuelle de la combinaison du magnétoscope et de l'écran du téléviseur (Figure 5.3). Il se compose de plusieurs objets modélisés d’après des scènes du monde réel. Un ensemble de boutons de commande (cmdPlay, cmdRecord, etc.) imitent les boutons qui font fonctionner un magnétoscope. Le logiciel VCR comprend également une horloge (lblTime), un indicateur de canal (lblChannel), un indicateur de fonction (shpPlay, shpRecord, etc.) et un tube image (picTV). Le module de formulaire Vcr.frm inclut des procédures événementielles pour tous ces objets.
Dans de nombreux cas, il existe des processus répétés partagés par plusieurs objets. Par exemple, "appuyer" sur le bouton "play", "rewind" ou "record" nécessite que les boutons "pause" et "stop" soient valides. Il est préférable de créer un sous-programme partagé que tous les boutons peuvent appeler plutôt que de répéter ce code dans la procédure événementielle Click de chaque bouton. Si ces sous-programmes sont modifiés à l'avenir, toutes les modifications peuvent être apportées en les modifiant en un seul endroit. Le module standard Vcr.bas contient diverses procédures partagées.
Certaines parties du magnétoscope sont invisibles, comme le mécanisme de transport de la bande ou la logique d'enregistrement des programmes télévisés. De même, certaines fonctions des magnétoscopes logiciels n'ont pas d'images visuelles. Ces parties et fonctions sont implémentées sous forme de deux modules de classe Recorder.cls et Tape.cls. Le module clsRecorder contient le code pour démarrer le processus « d'enregistrement » ; et le module clsTape contient le code pour contrôler la direction et la vitesse de la « bande ». Les classes définies dans ces modules ne sont directement liées à aucun objet du formulaire. Puisqu’il s’agit de modules de code indépendants, un programme d’enregistrement peut être facilement reconstruit sans aucune modification.
En plus de concevoir la structure de votre code, il est également important d'établir une convention de dénomination. Par défaut, Visual Basic nomme le premier formulaire du projet Form1, le deuxième formulaire Form2, etc. Si vous avez plusieurs formulaires dans votre application, c'est une bonne idée de leur donner des noms significatifs pour éviter toute confusion lors de l'écriture ou de la modification du code. Certaines conventions de dénomination recommandées par Visual Basic sont répertoriées dans l'Annexe B, « Conventions de codage VisualBasic ».
À mesure que vous en apprenez davantage sur les objets et apprenez à écrire du code, reportez-vous à l’exemple d’application VCR pour trouver des exemples de diverses techniques de codage.
Mécanisme d'écriture de code
Avant de commencer à écrire du code, il est important de comprendre les mécanismes d’écriture de code dans Visual Basic. Comme tout langage de programmation, Visual Basic possède ses propres règles d'organisation, d'édition et de formatage du code.
module de code
Le code Visual Basic est stocké dans des modules. Il existe trois types de modules : formulaires, normes et classes. Une application simple ne peut avoir qu'un seul formulaire, tout le code de l'application résidant dans le module de formulaire. Lorsque la demande est volumineuse et complexe, des formulaires supplémentaires doivent être ajoutés. Vous finirez peut-être par découvrir qu’il existe du code commun exécuté sous plusieurs formes. Étant donné que vous ne souhaitez pas dupliquer le code dans les deux formulaires, créez un module distinct contenant les procédures d'implémentation du code commun. Les modules autonomes doivent être des modules standards. Vous pouvez ensuite créer une bibliothèque de modules contenant des procédures partagées.
Chaque module standard, module de classe et module de formulaire peut contenir :
déclaration. Vous pouvez placer des déclarations de constantes, de types, de variables et de procédures de bibliothèque de liens dynamiques (DLL) au niveau du module dans des formulaires, des classes ou des modules standard.
processus. Une procédure Sub, Function ou Property contient des morceaux de code qui peuvent être exécutés comme une unité. Ceux-ci sont abordés dans la section « Présentation du processus » plus loin dans ce chapitre.
module de formulaire
Les modules de formulaire (extension de fichier .FRM) constituent la base de la plupart des applications Visual Basic. Un module de formulaire peut contenir des procédures de gestion des événements, des procédures générales et des déclarations de variables, de constantes, de types et de procédures externes au niveau du formulaire. Si vous deviez afficher le module de formulaire dans un éditeur de texte, vous verriez également une description du formulaire et de ses contrôles, y compris leurs paramètres de propriété. Le code écrit dans un module de formulaire est spécifique à l'application spécifique à laquelle le formulaire appartient ; il peut également faire référence à d'autres formulaires ou objets au sein de l'application.
Module standard
Les modules standard (extension de fichier .BAS) sont des conteneurs pour les procédures et les déclarations accessibles par d'autres modules au sein d'une application. Ils peuvent contenir des déclarations globales (à l'échelle de l'application) ou au niveau du module de variables, de constantes, de types, de procédures externes et de procédures globales. Le code écrit dans des modules standard ne doit pas nécessairement être lié à une application spécifique ; si l'on prend soin de ne pas faire référence aux formulaires et aux contrôles par leur nom, les modules standard peuvent être réutilisés dans de nombreuses applications différentes.
module de classe
Dans Visual Basic, les modules de classe (extension de fichier .CLS) constituent la base de la programmation orientée objet. Le code peut être écrit dans des modules de classe pour créer de nouveaux objets. Ces nouveaux objets peuvent contenir des propriétés et des méthodes personnalisées. En fait, un formulaire est justement un module de classe sur lequel des contrôles peuvent être placés et des fenêtres de formulaire peuvent être affichées.
Détails Pour des informations plus détaillées sur l'écriture de code dans des modules de classe, consultez le chapitre 9, « Programmation avec des objets ».
Notez que les éditions Professionnel et Entreprise de Visual Basic incluent également des documents ActiveX, des concepteurs ActiveX et des contrôles utilisateur. Ils introduisent de nouveaux types de modules avec différentes extensions de fichiers. Du point de vue du codage, ces modules doivent être traités comme des modules de formulaire.
Utiliser l'éditeur de code
L'éditeur de code Visual Basic est la fenêtre sur laquelle la plupart du code est écrit. Il s'agit d'un logiciel de traitement de texte hautement spécialisé doté de nombreuses fonctionnalités qui facilitent l'écriture de code Visual Basic. La figure 5.4 montre la fenêtre "Éditeur de code".
Étant donné que vous devez utiliser le code Visual Basic dans le module, vous devez ouvrir une fenêtre "Éditeur de code" indépendante pour chaque module sélectionné dans "l'Explorateur de projet". Dans chaque module, pour chaque objet contenu dans le module, le code du module est subdivisé en parties indépendantes correspondant à l'objet. Utilisez la "zone de liste d'objets" pour basculer entre les pièces. Dans un module de formulaire, la liste contient une section générale, une section pour le formulaire lui-même et une section pour chaque contrôle contenu dans le formulaire. Pour les modules de classe, la liste comprend une section générale et une section de classe ; pour les modules standards, une seule section générale est affichée.
Chaque morceau de code peut contenir plusieurs procédures différentes accessibles à l'aide de la zone de liste de procédures. La liste des procédures du module de formulaire contient une section distincte pour chaque procédure événementielle d'un formulaire ou d'un contrôle. Par exemple, la liste de processus du contrôle Label inclut le segment d'événement Change, le segment d'événement Click, le segment d'événement DblClick, etc. Les modules de classe énumèrent uniquement les procédures événementielles de la classe elle-même - initialisation et terminaison. Le module standard n'énumère aucune procédure événementielle car il ne prend pas en charge les événements.
La liste des procédures de la section générale du module contient uniquement la seule section - la section de déclaration, où sont placées les variables, constantes et déclarations DLL au niveau du module. Lorsque vous ajoutez des sous-procédures ou des procédures de fonction à un module, ces procédures sont ajoutées à la zone de liste de procédures sous la section de déclaration.
Deux vues différentes du code sont disponibles dans la fenêtre de l'éditeur de code. Vous pouvez afficher un processus à la fois, ou vous pouvez afficher tous les processus d'un module, séparés les uns des autres par des lignes (comme le montre la figure 5.4). Pour basculer entre les deux vues, utilisez le bouton « Afficher la sélection » dans le coin inférieur gauche de la fenêtre de l'éditeur.
codage à saisie semi-automatique
Visual Basic peut remplir automatiquement des instructions, des propriétés et des paramètres, ce qui rend l'écriture de code plus pratique. Lorsque vous saisissez du code, l'éditeur énumère les choix, instructions ou prototypes de fonction ou valeurs appropriés. Accessibles via la commande Options du menu Outils, des options sont disponibles dans l'onglet Éditeur de la boîte de dialogue Options qui déterminent s'il faut autoriser ou désactiver les valeurs de réglage pour les codes individuels.
Lorsque vous entrez un nom de contrôle dans le code, les « Propriétés automatiques des membres de la liste » mettront en surbrillance la feuille de propriétés déroulante du contrôle (Figure 5.5). Taper les premières lettres du nom de l'attribut sélectionnera le nom dans le tableau et appuyer sur la touche Tab terminera la saisie. Cette option est très utile lorsque vous n’êtes pas sûr des propriétés d’un contrôle donné. Même si vous choisissez de désactiver la fonctionnalité Membres de liste automatique, vous pouvez toujours utiliser la combinaison de touches CTRL J pour obtenir cette fonctionnalité.
La fonctionnalité « Auto Quick Info » affiche la syntaxe des instructions et des fonctions (Figure 5.6). Après avoir saisi une instruction Visual Basic légale ou un nom de fonction, la syntaxe s'affiche immédiatement sous la ligne actuelle et son premier paramètre est affiché en gras. Après avoir saisi la première valeur du paramètre, le deuxième paramètre apparaît à nouveau, également en gras. Des "informations rapides automatiques" peuvent également être obtenues à l'aide de la combinaison de touches CTRL I.
signet
Les signets peuvent être utilisés dans l'éditeur de code pour marquer certaines lignes de code afin que vous puissiez y revenir facilement plus tard. L'activation et la désactivation des signets et les commandes permettant de naviguer vers les signets existants peuvent être obtenues à partir des éléments de menu Modifier, Signet ou de la barre d'outils Modifier.
Plus d'informations Pour plus d'informations sur l'utilisation des combinaisons de touches pour utiliser diverses fonctionnalités de la fenêtre de l'éditeur de code, consultez « Touches de raccourci de la fenêtre de code ».
bases du codage
Cette section présente les mécanismes d'écriture de code, notamment comment diviser et fusionner des lignes de code, comment ajouter des commentaires, comment utiliser les nombres et les conventions de dénomination Visual Basic.
Diviser une instruction d'une seule ligne en plusieurs lignes
Vous pouvez utiliser des caractères de continuation de ligne (un espace suivi d'un trait de soulignement) dans la fenêtre Code pour diviser les instructions longues en plusieurs lignes. Grâce à l'utilisation de caractères de continuation de ligne, le code devient plus lisible tant sur ordinateur que sous forme imprimée. Ce qui suit utilise le caractère de continuation de ligne (_) pour diviser le code en plusieurs lignes :
Data1.RecordSource=_
SELECT*FROMTitres,Éditeurs_
&WHEREPublishers.PubId=Titres.PubID_
&ANDPublishers.State='CA'
Dans une même ligne, aucun commentaire ne peut être ajouté après le caractère de continuation de ligne. Il existe certaines restrictions quant à l'endroit où les caractères de continuation de ligne peuvent être utilisés.
Combiner plusieurs instructions sur la même ligne
En règle générale, il existe une instruction Visual Basic sur une ligne sans terminateur d'instruction, mais vous pouvez placer deux instructions ou plus sur la même ligne en les séparant par deux points (:).
Text1.Text=Bonjour:Rouge=255:Text1.BackColor=
Rouge
Cependant, pour faciliter la lecture du code, il est préférable de mettre une instruction par ligne.
Pour plus d'informations, consultez l'annexe A, « Spécifications, limitations et format de fichier de Visual Basic ».
Ajoutez des commentaires à votre code
Vous rencontrerez souvent le caractère de commentaire (') en lisant les exemples de ce manuel. Ce symbole indique à Visual Basic d'ignorer ce qui suit le symbole. Ce sont des commentaires dans l'extrait de code, à la fois pour la commodité du développeur et pour la commodité des autres programmeurs qui pourront examiner ultérieurement le code source. Par exemple:
'C'est du côté gauche de l'écran
'Commencez à commenter.
Text1.Text=Bonjour ! 'Mettez-le dans la zone de texte
'Accueillir.
Les commentaires peuvent figurer sur la même ligne que la déclaration, écrits après la déclaration, ou occuper une ligne entière. Le code ci-dessus illustre les deux situations. N'oubliez pas qu'un commentaire ne peut pas suivre un caractère de continuation de ligne sur la même ligne.
Remarque Vous pouvez ajouter ou supprimer des symboles de commentaire d'un bloc de code en sélectionnant deux lignes de code ou plus et en sélectionnant le bouton Bloc de commentaire ou Supprimer le bloc de commentaire dans la barre d'outils Modifier.
Comprendre les systèmes numériques
La plupart des valeurs de ce document sont en décimal (base 10). Mais parfois, il est plus pratique d’utiliser des nombres hexadécimaux (base 16) ou octaux (base 8). Visual Basic utilise le préfixe &H pour représenter les nombres hexadécimaux et &O pour représenter les nombres octaux. Le tableau suivant illustre la représentation décimale, octale et hexadécimale du même nombre.
Il n'est généralement pas nécessaire de connaître le système de nombres hexadécimal ou octal, car les ordinateurs peuvent fonctionner avec des nombres dans l'un ou l'autre système. Cependant, certains systèmes numériques sont plus adaptés que d'autres à certaines tâches, comme l'utilisation de nombres hexadécimaux pour définir la couleur des écrans et des commandes.
Conventions de dénomination VisualBasic
Lors de l'écriture de code Visual Basic, vous déclarez et nommez de nombreux éléments (procédures Sub et Function, variables, constantes, etc.). Les noms de procédures, variables et constantes déclarés dans le code Visual Basic doivent suivre ces règles :
1. Ils doivent commencer par une lettre.
2. Ils ne peuvent pas contenir de points intégrés ni de caractères de déclaration de type (caractères spéciaux qui spécifient les types de données).
3. Ils ne peuvent pas dépasser 255 caractères. Les noms des contrôles, formulaires, classes et modules ne peuvent pas dépasser 40 caractères.
4. Ils ne peuvent pas avoir le même nom que les mots-clés restreints.
Les mots-clés restreints sont des mots utilisés par Visual Basic et font partie du langage. Ceux-ci incluent des instructions prédéfinies (telles que If et Loop), des fonctions (telles que Len et Abs) et des opérateurs (tels que Or et Mod).
Informations détaillées Pour des informations plus détaillées sur la table de mots clés, reportez-vous au « Manuel de référence du langage Visual Basic 6.0 ».
Les formulaires et les contrôles peuvent porter le même nom que les mots-clés restreints. Par exemple, vous pouvez nommer une boucle de contrôle. Mais le contrôle ne peut pas être référencé de la manière habituelle dans le code, car Visual Basic pensera que Loop désigne le mot-clé. Par exemple, le code suivant générera une erreur.
Loop.Visible=True 'Erreur.
Pour référencer des formulaires ou des contrôles portant le même nom qu'un mot-clé restreint, vous devez les qualifier ou les mettre entre crochets []. Par exemple, le code suivant ne générera pas d'erreur.
MyForm.Loop.Visible=True 'Utiliser le nom du formulaire
'Qualifiez-le.
[Boucle].Visible=Vrai 'crochets
«Ça a fonctionné.
Les crochets peuvent être utilisés de cette manière lors du référencement de formulaires et de contrôles, mais pas lors de la déclaration de variable ou de la définition de procédure lorsque le nom de la variable ou de la procédure est le même que le mot clé restreint. Les crochets peuvent également être utilisés pour forcer Visual Basic à accepter les noms fournis par d'autres bibliothèques de types qui entrent en conflit avec des mots clés restreints.
Notez que taper des crochets est fatiguant, il est donc souhaitable d'utiliser des mots-clés moins restreints pour les noms de formulaires ou de contrôles. Toutefois, si une nouvelle version de Visual Basic définit de nouveaux mots clés en conflit avec des formulaires ou des contrôles existants, vous pouvez utiliser cette technique lors de la mise à jour de votre code pour utiliser la nouvelle version. _
->