VB6 TypeOf inutilisable [Résolu]

Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 10 juin 2010 à 15:15 - Dernière réponse :
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 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 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
- 11 juin 2010 à 08:58
3
Merci
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..

Merci lolokun 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de lolokun
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 11 juin 2010 à 03:25
1
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
- 10 juin 2010 à 15:39
0
Merci
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
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 10 juin 2010 à 15:48
0
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
- 10 juin 2010 à 15:56
0
Merci
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
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 10 juin 2010 à 16:02
0
Merci
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Dernière intervention
27 août 2013
- 10 juin 2010 à 16:05
0
Merci
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
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 10 juin 2010 à 16:31
0
Merci
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
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 11 juin 2010 à 01:33
0
Merci
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
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Dernière intervention
12 juin 2010
- 12 juin 2010 à 00:17
0
Merci
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
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
- 12 juin 2010 à 00:30
0
Merci
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.