Les boîtes de dialogue (VB .Net) – Partie I

Bonjour, il y a un certain temps que je n’ai pas écrit de nouvelle. La dernière fois que j’ai écrit sur la programmation c’était pour les boîtes de dialogue sur MAC. Dans cet article, nous verrons les boîtes de dialogue en VB .Net sous Visual Studio 2013 avec AutoCAD 2016. L’exemple permettra de créer un rectangle selon les dimensions spécifiées dans la boîte de dialogue. Cela nous permettra aussi de voir comment créer un objet. Cet article sera scindé en deux parties. La première partie mettra en place la boîte de dialogue et la seconde démontrera la création du rectangle dans AutoCAD.

Si vous préférez une version vidéo de cet article, visionnez-le sur YouTube (https://youtu.be/cq1JzMcPaCU).

Nous voilà parti. Démarrer Visual Studio 2013. Vous pouvez aussi utiliser une version antérieure de Visual Studio, telle 2012 ou 2010. Pour AutoCAD, vous pouvez aussi cibler une version plus ancienne mais n’aller pas plus bas que 2013. Vous devrez porter attention à la version du «Framework .Net» dépendant de la version d’AutoCAD.

  • Cliquez «Nouveau projet…»

2015-09-16_17h31_48

  • Choisissez «Bibliothèque de classes» comme type de projet.
  • Nommez le nom du projet et de la solution, je vous suggère «Box».
  • Localiser la solution où bon vous semblera.

2015-09-16_17h36_30

  • Renommez le fichier de classe «Class1.vb» vers «myBox.vb».
  • Renommez aussi la classe «Class1» à «myBox».

2015-09-16_17h42_43

Allons maintenant ajouter les références nécessaires.

  • Dans l’explorateur de solutions, double-cliquez «My Project».
  • Dans la catégorie «Application» assurez-vous que la version ciblée du Framework est bien 4.5 (pour AutoCAD 2015 et 2016).  Si vous ciblez les versions 2013 et 2014, utilisez plutôt la version 4.0.

2015-09-16_18h05_13

  • Sélectionnez la section «Références» et ajoutez les trois références suivantes:
    • accoremgd
    • acdbmgd
    • acmgd
  • Assurez-vous que le paramètre «Copie locale» est bien à «False». Vous pouvez le changer à partir de la palette des propriétés.

Ces références sont disponibles à partir du dossier de l’application AutoCAD (où se trouve le fichier Acad.exe)

2015-09-16_18h07_31.

  • Sélectionnez maintenant la section «Déboguer».
  • Sélectionnez «Démarrer le programme externe» puis à l’aide du bouton «…», sélectionnez le fichier Acad.Exe correspondant à la version d’AutoCAD que vous ciblez.

2015-09-16_18h14_16

Et voilà!!! Vous être prêt à programmer. Notez bien les étapes précédentes, elles sont requises à chaque nouveau projet.

Maintenant nous allons ajouter une boîte de dialogue toute simple. Enregistrez votre solution avant de passer à l’étape suivante.

  • Dans l’explorateur de solutions, sélectionnez le projet «Box».
  • Ensuite, à l’aide du menu déroulant PROJET, sélectionnez «Ajouter un formulaire Windows…». Vous pourriez aussi utiliser le menu contextuel sur le projet.

2015-09-16_18h39_40

  • Dans la fenêtre «Ajouter un nouvel élément» nommez le nouvel élément «frmMyBox».

2015-09-16_18h43_11

  • Renommez le titre de la fenêtre à «MyBox». Notez aussi le nouvel élément (frmMyBox.vb) dans l’explorateur de solutions.

2015-09-16_18h45_31

Nous allons maintenant ajouter quelques contrôles.

  • À partir de la boîte à outils, sélectionnez le contrôle «Label» puis placez-le sur le formulaire.
  • Répéter la même opération pour placer un autre libellé sous le premier.
  • Ensuite, sélectionnez le contrôle «» puis placez les à droite des libellés. Vous pouvez aligner les contrôles en suivant les lignes qui apparaitront.

2015-09-16_21h11_44

  • Sélectionnez le contrôle «Button» puis placez deux (2) boutons sous les libellés et les boîtes de texte.
  • Redimensionnez le formulaire pour le réduire un peu à l’aide de l’ancrage en bas à droite.

2015-09-16_21h18_03

  • Changez le texte (propriété Text)  du premier libellé pour «Longueur:» et le second pour «Largeur:». Utilisez la palette des propriétés.

2015-09-16_21h20_49

  • Changez le nom (Name) de la première boîte de texte pour «tbLength» et la seconde pour «tbWidth». «tb» signifie «Text Box». Il est très courant de préfixer le nom du contrôle par une abréviation de son type.

2015-09-16_21h25_20

  • Procédez de la même façon pour les boutons:
    • Button1: Name=btnOk et Text=OK
    • Button2: Name=btnCancel et Text=Annuler.

Enfin, dernier détail, nous allons configurer la position du formulaire par défaut:

  • Sélectionnez le contour du formulaire puis dans les propriétés ajustez le paramètre «StartPosition» à «CenterParent».

2015-09-17_09h33_58

Nous allons maintenant procéder à la création de la commande qui affichera cette boîte de dialogue.

  • Dans l’explorateur de solutions, double-cliquez sur «myBox.vb» puis avant la classe «myBox» ajouter la ligne suivante:
Imports Autodesk.AutoCAD.Runtime

Cette instruction donne accès à certaines instructions d’AutoCAD dont «CommandMethod» qui permet de définir la commande qui pourra être utilisée dans AutoCAD pour afficher la boîte de dialogue.

  • Ensuite, à l’intérieur de la classe «myBox», ajoutez la fonction suivante:
    <CommandMethod("myBox")> _
    Public Sub myBox()
        'Déclaration de la variable myForm selon le formulaire frmMyBox
        Dim myForm As New frmMyBox
        'Affichage de la boîte de dialogue en mode modal, c'est à dire qu'on ne peut cliquer en dehors de cette boîte sans l'avoir fermée au préalable.
        'On peut utiliser la méthode Show si l'on veut obtenir une boîte de dialogue non-modale
        myForm.ShowDialog()
        'Vidange de la variable myForm
        myForm = Nothing
    End Sub

La procédure (Sub) publique (Public) sera associée à la commande myBox dans AutoCAD.

Testons cette boîte de dialogue.

  • Cliquez le bouton «Démarrer».

2015-09-17_09h38_00

Ceci démarrera AutoCAD.

  • À l’aide de la commande «Netload», charger le DLL généré. Celui-ci devrait se trouvez dans le sous-dossier « ..\Box\Box\Bin\Debug\Box.dll » de la solution.
  • Exécuter la commande «MyBox».

La fenêtre s’affichera mais aucun bouton n’est fonctionnel.

  • Cliquez le «X» pour fermer le formulaire puis fermez AutoCAD pour revenir à Visual Studio.
  • À partir du formulaire, double-cliquez sur le bouton «Annuler». Ceci nous amène dans l’éditeur de code directement dans la procédure «btnCancel_Click». C’est la procédure qui s’exécute lorsque l’on clique le bouton.
  • Ajoutez l’instruction suivante (ligne 2) dans cette procédure:
    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub

Me représente le formulaire et Close est la méthode permettant de le fermer.

  • Retourner au formulaire, puis double-cliquez sur le bouton «Ok». Ceci nous amène à nouveau dans l’éditeur de code directement dans la procédure «btnOk_Click».
  • Ajoutez les instructions suivantes au corps de la procédure.
    Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
        Dim dblLength As Double = CDbl(tbLength.Text)
        Dim dblWidth As Double = CDbl(tbWidth.Text)

        MessageBox.Show("Vous allez insérer un rectangle de " & dblLength.ToString & " X " & dblWidth.ToString)

        Me.Close()
    End Sub

Les instructions «Dim» permettent de déclarer des variables. Le mot -clé «As» permet d’indiquer le type de la variable. Dans le cas des variables «dblLength» et «dblWidth» elles seront de types «Double» c’est-à-dire qu’ils représenteront des nombres réelles.

Le signe «=» permet d’assigner à la variable son contenu. Nous pouvons le faire immédiatement à la déclaration ou le faire sur deux (2) lignes:

        Dim dblLength As Double 
        dblLength = CDbl(tbLength.Text)

L’instruction «CDbl» permet de convertir la valeur contenu dans la boîte de texte, qui est de type «Text» vers un «Double». Tandis que le contenu du contrôle «tbLength« est obtenu par la propriété «Text».

L’instruction «MessageBox» permet d’afficher un message d’alerte. Le message est passé en paramètre entre parenthèse. Celui-ci est une concaténation de texte et de variable. L’assemblage se fait en utilisant le symbole «&». Les variables doivent aussi être converties en texte à l’aide de la méthode «ToString».

Vous remarquerez que l’instruction «MessageBox» est soulignée. C’est qu’il manque une déclaration pour pouvoir l’utiliser.

  • Approchez votre curseur vers la fin de l’instruction (où il y a un petit trait rouge). Ceci fera apparaître un X rouge.
  • Survolez ce X et ceci fera apparaître une flèche à sa droite. Cliquez-la.
  • Cliquez ensuite «Importer ‘System.Windows.Form’».

2015-09-17_10h15_06

  • Ceci ajoutera l’instruction suivante avant la déclaration de la classe.
Imports System.Windows.Forms
  • Démarrez AutoCAD, chargez le DLL et exécuter la commande «MyBox».
  • Inscrivez une longueur et une largeur. Assurez-vous de bien inscrire des nombres. Nous ne ferons pas de validation pour le moment.
  • Cliquez le bouton «OK». Vous obtiendrez le message défini dans l’instruction «MessageBox».
  • Fermez le message et la boîte de dialogue se fermera aussi.
  • Fermez AutoCAD et retournez à Visual Studio.

Cela met fin à la première partie. Nous avons maintenant une boîte de dialogue fonctionnelle. Nous nous retrouverons bientôt dans la deuxième partie pour l’ajout du rectangle dans le dessin.

D’ici là, bonne programmation!!!

André

Une réflexion au sujet de « Les boîtes de dialogue (VB .Net) – Partie I »

  1. Ping : Les boîtes de dialogue en VB .Net - ADC-DAO

Laisser un commentaire

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