J'utilise Windows 7 et mon projet est dans VB 6.0. Je reçois des erreurs lors de l'exécution de mon programme. Cela montre l'erreur:
Type défini par l'utilisateur non défini.
Voici mon code:
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "trace": Call mntrace_Click
Case "snrplot": Call mnSnrplot_Click
Case "skyplot": Call mnskyplot_Click
Case "nmea": Call mnNmea_Click
Case "navigation": Call mnNavigation_Click
Case "survey": Call mnSurvey_Click
Case "pause/start": Call mnpause_Click
Case "save": Call mnsave_Click
Case "print": Call mnprint_Click
Case "offline": Call mnoffline_Click
End Select
End Sub
Comment puis-je résoudre cette erreur?
Le compilateur met automatiquement en surbrillance la première ligne de la déclaration de fonction lorsque l'erreur apparaît. Cela signifie que l'erreur se produit quelque part dans cette ligne. Parfois, ce n'est pas aussi utile que vous le souhaitez, mais dans ce cas, il parvient à vous en dire beaucoup.
Plus précisément, le seul "type défini par l'utilisateur" (en réalité, le seul "type") qui apparaît dans la déclaration de fonction est MSComctlLib.Button
. Le message d'erreur du compilateur vous dit ici qu'il ne sait pas ce qu'est un MSComctlLib.Button
. Il suppose donc qu'il s'agit d'un type "défini par l'utilisateur" car il ne sait souvent pas de quoi parle l'utilisateur. :-)
Quoi qu'il en soit, le correctif est simple: vous devez indiquer au compilateur ce qu'est un MSComctlLib.Button
. Dans ce cas, il s’est trompé en supposant qu’il s’agissait d’un type défini par l’utilisateur. Il s’agit en fait d’un contrôle bouton fourni dans la bibliothèque des contrôles communs de Microsoft Windows. Pour informer VB 6 de ce contrôle, vous devez ajouter le composant correspondant à votre projet. Suivez ces étapes:
Dans le menu "Projet", sélectionnez "Composants".
Dans la boîte de dialogue qui apparaît, faites défiler les 2/3 environ de la liste jusqu'aux M. Cochez les éléments "Microsoft Windows Common Controls 6.0" et "Microsoft Common Controls-2 6.0". (Ne vous inquiétez pas si vous avez une désignation de service pack différente.)
Cliquez sur le bouton OK. Si vous êtes rapide, vous verrez quelques contrôles supplémentaires ajoutés à votre boîte à outils. Ce sont les contrôles fournis par les bibliothèques de composants que vous venez d'ajouter. Parmi ces contrôles, il en existe un appelé Button
.
Enfin, essayez de compiler et d’exécuter à nouveau votre projet - tout devrait bien se passer cette fois-ci, car le compilateur sait maintenant quel est le type MSComctlLib.Button
. Si ce n'est toujours pas le cas, c'est un bouton qui apparaît dans votre barre d'outils. Le contrôle de barre d’outils est fourni par la bibliothèque Contrôles communs et inclut un type qui définit un bouton individuel apparaissant dans cette barre d’outils.
Je pense que vous venez de copier et coller ce code depuis ailleurs. Normalement, si vous souhaitez faire référence à MSComctlLib, vous devez normalement commencer par suivre les étapes indiquées par Cody Gray avant de pouvoir accéder à la bibliothèque de types.
On dirait qu'il vous manque une référence à une bibliothèque d'objets.
(L'avez-vous exécuté sans erreur ailleurs?)