Introduction Cet ouvrage est dédié au langage de programmation vedette de Microsoft : Visual Basic. Les explications et les exemples donnés s appliquent aux versions 2012 et 2013 du langage. De nombreuses raisons font qu aujourd hui ce langage est un des plus utilisés au monde : Il est facile à apprendre, y compris pour des personnes n ayant jamais "touché" à la programmation. Il offre une approche totalement orientée objet, ce qui simplifie le développement d applications de grande envergure et/ou complexes. Il est suffisamment puissant pour fournir toutes les ressources nécessaires aux programmeurs avancés. Il est extensible. De nombreuses sociétés proposent des composants annexes qui limitent dans de grandes proportions le développement de code spécialisé. Il produit tout aussi facilement des applications destinées à être exécutées dans un environnement Windows (Windows Forms ou WPF) ou Internet (ASP.NET). Il est totalement compatible avec Windows 8, le dernier système d exploitation de Microsoft. Il sait parfaitement dialoguer avec les applications de bureautique les plus utilisées au monde (le traitement de texte Microsoft Word et le tableur Microsoft Excel) afin d automatiser la création de fichiers dans ces applications. Il utilise un langage de requêtage universel très puissant appelé LINQ. Grâce à lui, le programmeur peut interroger toutes sortes de collections, qu elles proviennent d objets créés par les méthodes propres à Visual Basic, d une base de données locale ou distante ou encore de documents XML. Enfin, il est armé pour la programmation parallèle, afin de tirer le meilleur parti des processeurs multicœurs qui occupent aujourd hui la plupart de nos ordinateurs. Cet ouvrage est divisé en trois parties indépendantes : "Faisons connaissance avec Visual Basic", "Programmation Windows" et "Programmation Internet". Chaque lecteur, en fonction de ses objectifs, peut étudier la partie qui lui convient sans être pénalisé s il n a pas abordé les autres sujets. Ce livre se décompose de la façon suivante : Faisons connaissance avec Visual Basic (Chapitres 1 et 2). Cette partie vous aide à débuter dans l univers de la programmation en Visual Basic. Après avoir pris connaissance de la procédure d installation de Visual Studio 2012, vous découvrirez les instructions du langage et vous verrez comment déboguer le code. Programmation Windows (Chapitres 3 à 15). La deuxième partie de l ouvrage est la plus volumineuse. À travers de nombreux exemples, elle vous montre comment aborder la plupart des domaines de programmation Windows : utilisation des boîtes de dialogue, mise en place de menus, barres d outils et barres d état, manipulations graphiques, accès au système de fichiers, exploitation de données tabulaires, bases de données, interfaçage de Word et d Excel, etc. Tous les codes présentés dans cette partie sont réutilisables : un copier-coller est généralement suffisant pour les incorporer dans vos propres développements. Cette partie s intéresse essentiellement aux applications Winform, fondées sur GDI+, mais également aux applications Introduction VII
WPF (Windows Presentation Foundation), basées sur un mode graphique vectoriel extrêmement performant. Programmation Internet (Chapitres 16 à 18). Cette troisième partie aborde différents aspects de la programmation Internet. Après avoir créé un client HTTP pour naviguer sur le Web et un client FTP pour télécharger des fichiers, vous découvrirez comment réaliser des programmes ASP.NET destinés à être utilisés dans un navigateur web et vous verrez comment tirer parti de la technologie LINQ. Les sources de l ouvrage Les éditions Pearson mettent à votre disposition l ensemble des solutions passées en revue au fil des pages, sur le site www.moneformation.fr, à la page consacrée à cet ouvrage. Ces solutions sont rassemblées dans une archive au format ZIP. Pour accéder facilement aux solutions contenues dans ces dossiers, il suffit de copier ces derniers dans le dossier Documents\Visual Studio 2012 ou 2013\Projects\Pearson de votre disque dur principal. Lorsque vous lancerez la commande Ouvrir/Projet Solution dans le menu Fichier de Visual Studio, toutes les solutions de l ouvrage seront ainsi directement accessibles. Pour utiliser ce livre, vous pouvez choisir de travailler avec : une édition gratuite de Visual Studio : Express 2012 ou 2013 pour Windows Desktop (pour créer des applications Windows Forms et WPF) et Express 2012 ou 2013 pour le Web (pour créer des applications web) ; une édition payante de Visual Studio : Professional, Premium ou Ultimate 2012 ou 2013. Si vous disposez d une connexion Internet haut débit, vous pouvez télécharger les produits Express en vous rendant à l adresse http://www.microsoft.com/france/visualstudio/essayez/express.aspx (voir Figure 0.1). VIII Introduction
Figure 0.1 La page de téléchargement de Visual Studio Express 2012 pour Windows Desktop. Notez qu il est également possible de télécharger la version Professional, Premium ou Ultimate de Visual Studio 2012, limitée à quatre-vingt-dix jours d utilisation, en vous rendant sur la page http://www.microsoft.com/visualstudio/fra/downloads#d-2012- editions (voir Figure 0.2). Ces produits vous permettront de créer des applications Desktop et Web, mais aussi plusieurs autres types d applications (Windows Store et Office 2013 par exemple) non couverts dans cet ouvrage. Introduction IX
Figure 0.2 La page de téléchargement de Visual Studio 2012 Professional, Premium ou Ultimate. Site compagnon Cet ouvrage est accompagné d un site web sur lequel se trouvent tous les corrigés des exercices en vidéo. Pour accéder à ces derniers, rendez-vous à l adresse www.moneformation.fr et inscrivez-vous pour activer votre compte et accéder aux corrigés des exercices. Vous aurez besoin de consulter le présent ouvrage pour créer votre compte et répondre à la question de sécurité. Chaque fois que vous voudrez réaliser un exercice de l ouvrage, vous pourrez vous référer à la page correspondante de l exercice sur le site web. Rubriques spéciales de ce livre Astuce Elles fournissent des remarques particulières ou des raccourcis inhabituels du langage. Info Elles donnent des informations complémentaires sur le sujet étudié, sans être indispensables pour la tâche en cours. Définition Les nouveaux termes sont placés en italique et explicités dans le texte. X Introduction
Partie II Programmation Windows Au travers de nombreux exemples, cette partie montre comment aborder la plupart des domaines de programmation Windows : utilisation de boîtes de dialogue communes, mise en place de menus, barres d outils et barres d état, manipulations graphiques, accès au système de fichiers, exploitation de données tabulaires, bases de données locales, interfaçage de Word et d Excel, accès aux fonctions API, etc. Tous les codes présentés dans cette partie sont réutilisables : un copier-coller est généralement suffisant pour les incorporer dans vos propres développements.
3 Boîtes de dialogue communes Windows met à la disposition des programmeurs un ensemble de boîtes de dialogue "communes". Elles donnent aux applications un look and feel constant, ce qui facilite l apprentissage de leurs utilisateurs. La mise en œuvre des boîtes de dialogue communes est des plus simples. Il suffit d initialiser des propriétés et d appeler la méthode adéquate. Les boîtes de dialogue accessibles par ce procédé concernent l ouverture, l enregistrement et l impression de fichiers, la sélection de dossiers, de couleurs et de polices. Chacune de ces boîtes de dialogue est attachée à un contrôle spécifique dans la Boîte à outils : OpenFileDialog pour la boîte de dialogue Ouvrir ; SaveFileDialog pour la boîte de dialogue Enregistrer sous ; ColorDialog pour la boîte de dialogue Couleur ; FontDialog pour la boîte de dialogue Polices de caractères ; PrintDialog pour la boîte de dialogue Imprimer ; PrintPreviewDialog pour la boîte de dialogue Aperçu avant impression ; FolderBrowserDialog pour la boîte de dialogue Rechercher un dossier. La boîte de dialogue Ouvrir La boîte de dialogue Ouvrir permet de sélectionner un fichier dans les mémoires de masse de l ordinateur : disques durs, CD-ROM, SSD, mémoire flash, etc. Elle est attachée à la méthode ShowDialog. Pour qu une boîte de dialogue Ouvrir puisse s afficher, une ou plusieurs propriétés doivent être renseignées. Le tableau suivant dresse la liste des principales propriétés utilisables. Propriété DefaultExt Title FileName Effet Définit l extension par défaut du nom du fichier à ouvrir. Définit la chaîne affichée dans la barre de titre de la boîte de dialogue. Définit le chemin d accès et le nom du fichier sélectionné par défaut.
Filter FilterIndex InitialDirectory Définit les filtres à utiliser. Ces filtres apparaissent dans la liste modifiable Type de la boîte de dialogue. La syntaxe est objet.filter [= description1 filtre1 description2 filtre2 ]. Spécifie le filtre à utiliser par défaut dans la boîte de dialogue Ouvrir. La syntaxe est objet.filterindex [= 1 2 3 4 ]. Définit le répertoire des fichiers affichés à l ouverture de la boîte de dialogue. Une fois que les propriétés de votre choix ont été renseignées, un simple appel à la méthode ShowDialog() affiche la boîte de dialogue Ouvrir. Vous pouvez ensuite utiliser la propriété FileName pour connaître le nom du fichier sélectionné. Lancez la commande Nouveau/Projet du menu Fichier pour définir un nouveau projet. Choisissez.NET Framework 4.5 sur la liste déroulante Framework. Sélectionnez Visual Basic/Windows dans le volet gauche et Application Windows Forms dans le volet central. Donnez le nom Ouvrir au projet et cliquez sur OK. Ajoutez deux boutons de commande (Button), une zone de texte (TextBox) et une boîte de dialogue Ouvrir (OpenFileDialog) dans la feuille. Modifiez les propriétés des différents contrôles comme suit : Contrôle Propriété Valeur Form1 Text La boîte de dialogue Ouvrir Button1 Text Ouvrir Button2 Text Quitter TextBox1 Multiline True OpenFileDialog (Name) CMD Si vous avez suivi nos indications, la feuille du projet doit maintenant ressembler à la Figure 3.1. Figure 3.1 La boîte de dialogue du projet, en mode Création. Vous allez maintenant définir le code des deux boutons de commande. Double-cliquez sur le bouton Ouvrir et complétez la procédure Button1_Click() comme suit : Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click CMD.Title = "Choisissez un fichier" CMD.Filter = "Bitmap (*.BMP) *.BMP DLL (*.DLL) *.DLL Exécutables (*.EXE) *. EXE Fichiers d'aide (*.HLP) *.HLP" CMD.FilterIndex = 1 CMD.InitialDirectory = "C:\WINDOWS" 36 Chapitre 3
CMD.ShowDialog() ' ' Message affiché selon la sélection de l'utilisateur ' If (CMD.FileName <> "") Then TextBox1.Text = "Le fichier " + CMD.FileName + " a été sélectionné." Else TextBox1.Text = "Vous n'avez sélectionné aucun fichier." End Sub Info Lorsqu une ligne est trop longue pour apparaître en totalité dans la fenêtre d édition, vous pouvez la décomposer en autant de lignes plus courtes que nécessaire. À titre d exemple, voici comment aurait pu être découpée la dernière ligne de la procédure Button1_ Click() : If (CMD.FileName <> "") Then TextBox1.Text = "Le fichier " + CMD.FileName + " a été sélectionné." Else TextBox1.Text = "Vous n'avez sélectionné aucun fichier." Les quatre premières lignes paramètrent la boîte de dialogue Ouvrir : Title définit le texte qui apparaît dans la barre de titre. Filter définit le filtre de sélection des fichiers de la liste déroulante Fichiers de type. FilterIndex désigne l entrée sélectionnée par défaut sur la liste déroulante Fichiers de type. InitialDirectory définit le dossier par défaut. CMD.Title = "Choisissez un fichier" CMD.Filter = "Bitmap (*.BMP) *.BMP DLL (*.DLL) *.DLL Exécutables (*.EXE) *. EXE Fichiers d'aide (*.HLP) *.HLP" CMD.FilterIndex = 1 CMD.InitialDirectory = "C:\WINDOWS" Lorsque la boîte de dialogue a été paramétrée, elle s affiche : CMD.ShowDialog() Lors de sa fermeture, la propriété FileName du contrôle CMD contient l entrée sélectionnée par l utilisateur. En fonction de cette entrée, un message apparaît dans la zone de texte : If (CMD.FileName <> "") Then TextBox1.Text = "Le fichier " + CMD.FileName + " a été sélectionné." Else TextBox1.Text = "Vous n'avez sélectionné aucun fichier." Double-cliquez sur le bouton de commande Quitter et complétez la procédure Button2_ Click() en ajoutant le mot End : Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click End End Sub Cette instruction met fin au programme lorsqu on clique sur le bouton Quitter. Exécutez la solution en cliquant sur le bouton Démarrer de la barre d outils Standard. Les boutons Ouvrir et Quitter sont totalement opérationnels (voir Figure 3.2). Boîtes de dialogue communes 37
Figure 3.2 Un fichier a été sélectionné dans le dossier c:\ Windows. Cette application se trouve dans le dossier Ouvrir après installation des sources de l ouvrage. La boîte de dialogue Enregistrer sous Les boîtes de dialogue Enregistrer sous et Ouvrir sont assez semblables. Seule la méthode à utiliser est différente. Vous trouverez dans le dossier Projects\Enreg des sources de l ouvrage une application permettant de définir le nom d un fichier de sauvegarde dans une boîte de dialogue Enregistrer sous (voir Figure 3.3). Figure 3.3 Les deux boîtes de dialogue affichées par le projet ENREG. Voici le listing de la procédure associée au clic sur le premier bouton de commande : Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' - - - - - - - - - - - - - - - - - - - - - - - - - - ' Définition des propriétés de la boîte de dialogue ' - - - - - - - - - - - - - - - - - - - - - - - - - - TextBox1.Text = "" CMD.Title = "Enregistrer le fichier sous " CMD.Filter = "*.PER *.per *.LOG *.log" CMD.FilterIndex = 1 CMD.InitialDirectory = "C:\WINDOWS" CMD.FileName = "Agenda.per" 38 Chapitre 3
CMD.ShowDialog() If (CMD.FileName <> "") Then TextBox1.Text = "La sauvegarde sera réalisée dans le fichier " + CMD.FileName + "." Else TextBox1.Text = "Vous n'avez sélectionné aucun fichier." End Sub Remarquez en particulier la définition restreinte des filtres de sauvegarde : CMD.Filter = "*.PER *.per *.LOG *.log" et la sélection du nom de la sauvegarde par défaut : CMD.filename = "Agenda.per" Ce projet se trouve dans le dossier Enreg après installation des sources de l ouvrage. La boîte de dialogue Couleur La boîte de dialogue Couleur permet de sélectionner une couleur dans un ensemble de couleurs de base. En agrandissant cette boîte, vous pouvez également définir une couleur par ses composantes : teinte, saturation, luminance, rouge, vert, bleu. Pour faire apparaître la boîte de dialogue Couleur, il suffit d appeler la fonction ShowDialog(). Cette fonction renvoie une valeur qui indique sur quel bouton l utilisateur a cliqué pour la fermer : Windows.Forms.DialogResult.OK (bouton OK) ou Windows.Forms.DialogResult.Cancel (bouton Annuler). Le cas échéant, l objet Color donne tous les renseignements nécessaires sur la couleur sélectionnée. Exemple Nous allons définir un projet qui permettra à l utilisateur de sélectionner une couleur dans une boîte de dialogue Couleur. Le résultat à atteindre est représenté à la Figure 3.4. Figure 3.4 Utilisation d une boîte de dialogue Couleurs pour sélectionner une couleur prédéfinie ou personnalisée. Boîtes de dialogue communes 39
Réalisation Définissez un nouveau projet. Ajoutez le contrôle ColorDialog3 dans la feuille de l application. Cliquez dessus et donnez-lui le nom CMD (propriété Name). Définissez deux boutons de commande et une zone de texte. Nommez les deux boutons Couleur et Quitter (propriété Caption). Définissez enfin le titre de la boîte de dialogue : Choix d une couleur (propriété Caption de la boîte de dialogue). La feuille du projet doit maintenant ressembler à la Figure 3.5. Figure 3.5 La boîte de dialogue du projet, en mode Création. Affectez à présent des lignes de code aux deux boutons de commande. La procédure associée au bouton Quitter comprend une seule instruction qui met fin au programme : Private Sub Command2_Click() End End Sub La procédure associée au bouton Couleur est plus complexe. Double-cliquez sur le bouton Couleur et définissez les lignes de code suivantes : Private Sub Command1_Click() If CMD.ShowDialog() = Windows.Forms.DialogResult.OK Then TextBox1.Text = "Le code RGB de la couleur est : R=" + Str(CMD.Color.R) + " V=" + Str(CMD.Color.G) + " B=" + Str(CMD.Color.B) Else TextBox1.Text = "Aucune couleur n'a été sélectionnée" EndIf End Sub La procédure consiste en une seule instruction If Then Else : If CMD.ShowDialog() = Windows.Forms.DialogResult.OK Si l utilisateur clique sur le bouton OK pour quitter la boîte de dialogue Couleurs, la procédure CMD.ShowDialog() renvoie la valeur Windows.Forms.DialogResult. OK. Le code qui suit l instruction Then est donc exécuté : TextBox1.Text = "Le code RGB de la couleur est : R=" + Str(CMD.Color.R) + " V=" + Str(CMD.Color.G) + " B=" + Str(CMD.Color.B) La zone de texte TextBox1 affiche les valeurs RGB de la couleur sélectionnée par l utilisateur. Notez la simplicité avec laquelle les trois composantes sont extraites de l objet Color. 3. Ce contrôle se trouve sous l onglet Boîtes de dialogue de la Boîte à outils. 40 Chapitre 3
Si l utilisateur clique sur le bouton Annuler pour quitter la boîte de dialogue Couleurs, la condition suivant l instruction If n est pas vérifiée. Le code suivant l instruction Else est donc exécuté : TextBox1.Text = "Aucune couleur n'a été sélectionnée" Ce code affiche un message indiquant qu aucune couleur n a été sélectionnée dans la boîte de dialogue Couleurs. Info Pour initialiser la couleur d un objet, il suffit de transmettre ses composantes Rouge, Vert et Bleu à la fonction RGB : Objet.Color = RGB(Composante Rouge, Composante Vert, Composante Bleu) Ce projet se trouve dans le dossier Couleur après installation des sources de l ouvrage. La boîte de dialogue Police de caractères La boîte de dialogue Police de caractères permet de sélectionner une police et ses attributs. Elle est attachée à la méthode ShowDialog. Tout comme pour les autres boîtes de dialogue communes, il est possible de connaître le bouton sur lequel l utilisateur a cliqué lors de la fermeture de la boîte de dialogue, en contrôlant la valeur renvoyée par la fonction ShowDialog(). Les objets manipulés par la boîte de dialogue Police de caractères sont de type Font. Voici leurs principales propriétés : Propriété Font.Bold Font.Italic Font.Name Font.Size Font.Strikeout Font.Underline Effet Définit le style Gras Définit le style Italique Définit la police Définit la taille Définit le style Barré Définit le style Souligné Exemple Nous allons définir un projet qui permettra à l utilisateur de sélectionner une police, un style, une taille et des effets. Le résultat à atteindre est montré à la Figure 3.6. Boîtes de dialogue communes 41
Exercice 1 Retrouvez les fichiers d'exercices et leurs corrigés sur le site compagnon www.moneformation.fr La boîte de dialogue Rechercher un dossier Créez une application Windows Forms permettant de choisir un sous-dossier dans le dossier Mes documents. Vous devrez également permettre à l utilisateur de créer des sous-dossiers dans le dossier Mes documents. La Figure 3.10 représente l application à définir. Figure 3.10 La boîte de dialogue Rechercher un dossier s affiche quand on clique sur le bouton. Quelques indices : vous utiliserez le contrôle FolderBrowserDialog et vous lui appliquerez la méthode ShowDialog(). Si nécessaire, consultez l aide en ligne sur la classe FolderBrowserDialog. Boîtes de dialogue communes 47