"La variable 'oContract' est utilisée avant qu'une valeur ne lui ait été assigné [Résolu]

Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Dernière intervention
23 août 2010
- 2 avril 2010 à 10:04 - Dernière réponse :
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Dernière intervention
23 août 2010
- 6 avril 2010 à 09:15
Bonjour à tous,
Je suis nouveau sur ce forum, je lis vos messages avec intérêt.
Je "développe" en VB 20008 Express, sous Windows 7.
Je débute comme vous allez voir ...

Voici ma question:

Dans une procédure déclenchée par un click sur un bouton, je déclare une variable:
Dim oContract As TWSLib.IContract

(VB m'indique que TWSLib est un "namespace", Icontract est une "interface").

Juste en dessous j'affecte des valeur à oContract:
oContract.symbol = "ACA"
oContract.secType = "STK"
oContract.exchange = "SMART"
oContract.currency = "EUR"


Et c'est le drame ... VB 2008 m'indique que "La variable 'oContract' est utilisée avant qu'une valeur ne lui ait été assignée"

Je ne comprends plus: Je défini correctement ma variable, je lui affecte des valeurs constantes ... et j'ai ce message d'erreur.

Alors quelqu'un peut-il me dire où est l'erreur (de logique) et comment faire pour la corriger?

Merci à tous,

Laurent.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
16 novembre 2018
- 2 avril 2010 à 20:34
3
Merci
Bonjour,

Une interface est un élément d'un objet.

Déclarer ton interface, c'est bien, mais il faut lui assigner un objet pour pouvoir l'utiliser, sinon, la référence sera Nothing.

Il faut que tu instancie une classe qui implémente cette interface pour pouvoir l'utiliser.

Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de NHenry
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Dernière intervention
16 juillet 2013
- 2 avril 2010 à 11:46
0
Merci
Bonjour, essaye Dim oContract As TWSLib.IContract = New TWSLib.IContract, cela pourrai peut etre resoudre ton souci...
Commenter la réponse de alexandrevandenberghe
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Dernière intervention
23 août 2010
- 2 avril 2010 à 11:49
0
Merci
Merci pour ta réponse Alexandre, j'ai essayé mais hélas:
"Impossible d'utiliser 'NEW' pour une interface"
Commenter la réponse de KOBAXU
Messages postés
10
Date d'inscription
vendredi 2 avril 2010
Dernière intervention
23 août 2010
- 6 avril 2010 à 09:15
0
Merci
Merci NHenry,
Je me suis plongé dans le concept d'Interface pour bien comprendre. J'ai encore du boulot!
Commenter la réponse de KOBAXU

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.