VB6 TypeOf inutilisable [Résolu]

jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 10 juin 2010 à 15:15 - Dernière réponse : Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention
- 12 juin 2010 à 00:30
Bonjour à tous,

j'ai commencé un stage il y a de ça 5 semaines où je dois apporter des modifications à une application en VB6. Donc, je n'ai que 5 semaines d'expérience avec ce langage un peu dépassé, alors soyez compréhensif svp.

Mon Problème:
Le programme est orienté objet et à un moment donné, j'aurais besoin d'utiliser le mot clé TypeOf. Le truc est que je ne parvient pas à l'obtenir dans les choix lorsque je fais Ctrl+Espace. Me manque-t-il une référence? Est-ce je peux toujours employer TypeOf? Sinon, y a-t-il une alternative? J'ai googlé sur le sujet et personne ne semble avoir ce problème.

J'utilise VB6 SP6 sous XP Pro.

Merci à l'avance
Afficher la suite 

11 réponses

Répondre au sujet
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 11 juin 2010 à 08:58
+3
Utile
Bonjour,

Pourtant j'ai testé ceci dans un nouveau projet vb6, juste un commandbutton (Vb6.0 SP6):

Private Sub Command1_Click()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is CommandButton Then
MsgBox ctl.Caption
End If
Next ctl
End Sub

Le prog m'affiche bien la messagebox avec la caption "commanbutton1"..
Peut-être une option à décocher, vu que j'ai aussi vb2003 et 2005 d'installés..

L'expérience, c'est une connerie par jour, mais jamais la même..
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lolokun
jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 11 juin 2010 à 03:25
+1
Utile
HAHAHA, merci Mayzz, je pouvais bien chercher.

Comme je déteste googlé et trouver exactement le même problème qui n'a jamais été répondu ou qui a été résolu par son créateur qui ne laisse pas sa solution... pour ceux que ça intéresse, on peut pas mal faire l'équivalent avec ceci:

If(TypeName(<objet>) = "<nom de la classe>") Then
  <votre code>
End If
Commenter la réponse de jlemay2105
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 10 juin 2010 à 15:39
0
Utile
Bonjour,

Oui tu peux l'employer, du moins as-tu essayé ou fais une recherche sur ce site??

Un truc de ce style devrait fonctionner :

Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is CommandButton Then
ton code
End If
Next ctl


L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 10 juin 2010 à 15:48
0
Utile
Merci de ta réponse rapide,

comme j'ai dit, j'ai googlé et je n'ai trouvé aucune info par rapport à mon problème.

Un truc de ce style devrait fonctionner :

Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is CommandButton Then
ton code
End If
Next ctl

C'est ça, ça ne marche pas. VB ne reconnait pas le mot clé "TypeOf", de là ma question: Me manque-t-il une référence ou est-ce que TypeOf devrait être dans mes librairies par défaut?
Commenter la réponse de jlemay2105
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 10 juin 2010 à 15:56
0
Utile
Logiquement il n'y a rien à rajouter, cela fait partie des opérateurs de base.


L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 10 juin 2010 à 16:02
0
Utile
C'est bizarre, parce qu'il reconnaît "TypeName", mais pas "TypeOf".
Encore plus bizarre, même s'il ne reconnaît pas "TypeOf", lorsque je tape ce mot clé au complet, que je le sélectionne puis que je pèse F1, la documentation de MSDN me donne la doc à son sujet. Malheureusement, rien d'utile.
Commenter la réponse de jlemay2105
lolokun 1241 Messages postés mardi 10 octobre 2006Date d'inscription 27 août 2013 Dernière intervention - 10 juin 2010 à 16:05
0
Utile
Mais quand tu dis qu'il ne reconnaît pas, c'est à dire??
As-tu au moins essayé de l'exécuter, tu as un message d'erreur??


L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 10 juin 2010 à 16:31
0
Utile
J'ai effectivement essayé.

Syntaxes essayées
If (TypeOf(ctrl) Is clsCbo) Then
If (TypeOf ctrl Is clsCbo) Then
If TypeOf(ctrl) Is clsCbo Then
If TypeOf ctrl Is clsCbo Then


Il est à noter que ctrl est de type parent de clsCbo. clsCbo implémente clsControl.

Lorsque je tape l'une de ces lignes puis que je pèse ENTER, j'ai le message d'erreur suivant

Compile error:

Expected: Variable
Commenter la réponse de jlemay2105
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 11 juin 2010 à 01:33
0
Utile
TypeOf n'existe pas en VB6, c'est du .Net !


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
jlemay2105 9 Messages postés samedi 31 octobre 2009Date d'inscription 12 juin 2010 Dernière intervention - 12 juin 2010 à 00:17
0
Utile
Hey lokokun,

je voulais simplement te dire que c'est toi qui avait raison finalement. J'essayais de trouver TypeOf dans les méthodes disponibles quand en fait, ce n'est pas une méthode, mais un mot clé. On doit donc l'utiliser sans les parenthèse.
Commenter la réponse de jlemay2105
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 12 juin 2010 à 00:30
0
Utile
Ah bah désolé, je pensais vraiment ce que je disais, en générale je teste avant de poster, mais la je suis sous un OS 64bits et donc pas d'install de vb6 possible, désolé de vous avoir induit en erreur ^^


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.