IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème d'étendue de variable


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut Problème d'étendue de variable
    Bonjour

    J'ai une appliaction qui est basée sur sur une WindowForm dont le code est du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Class frmApplication
    Dim  App As New ClassX(" Texte", " Texte2")
    .....
    End Class
    avec dans un fichier à part une classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Class ClassX : Inherits TraceSwitch
     
    Sub New (Byval Txt1 as String, ByVal Txt2 as String)
    ........
    End Sub
     
    Public Sub Message(ByVal Txt1 as String, ByVal Txt2 as String)
    ......
    End Sub
     
    End Class

    J'essaye d'utiliser la procédure Message de ClassX avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClassX.Message("Toto", "Tata")

    CEla marche tant que je suis DANS la classe frmApplication

    mais si je veux y avoir accès dans une autre classe, impossible!
    Pourquoi? N'est elle pas déclarée PUBLIC ?

    Merci de votre aide

    Bernard

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par BernardBouree Voir le message
    J'essaye d'utiliser la procédure Message de ClassX avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClassX.Message("Toto", "Tata")

    CEla marche tant que je suis DANS la classe frmApplication
    Tu ne fais pas plutôt App.Message("Toto", "Tata") ? Message est une méthode d'instance, pas une méthode statique (Shared), donc il faut une instance de ClassX pour l'appeler.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Oui bien sur ma main a fourché!

    C'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    App.Message("Toto","Tata")
    que j'essaye d'utiliser.
    App a été instancié dans frmApplication.
    Pourquoi n'est elle pas disponible dans une autre class?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par BernardBouree Voir le message
    App a été instancié dans frmApplication.
    Pourquoi n'est elle pas disponible dans une autre class?
    Parce que c'est une variable de la classe frmApplication. Même si la classe ClassX est publique, la variable App est privée, donc pas accessible depuis d'autres classes que frmApplication. Mais même si elle était publique, le symbole App serait quand même local à la classe frmApplication, et non global. Pour y accéder depuis une autre classe il faudrait donc faire frmApplication.App

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    THomas

    Merci pour ta réponse, mais cela ne marche pas.
    Est-ce parceque frmApplication est windows form?

    Bernard

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par BernardBouree Voir le message
    Merci pour ta réponse, mais cela ne marche pas.
    Qu'est-ce qui ne marche pas ? Tu as changé quoi exactement ?

Discussions similaires

  1. Shell et perl problème d'interpolation de variable.
    Par Whaouu dans le forum Langage
    Réponses: 7
    Dernier message: 26/10/2005, 17h39
  2. [FLASH 8] Probléme chargement .swf et variable
    Par segphault dans le forum Flash
    Réponses: 1
    Dernier message: 24/10/2005, 13h18
  3. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55
  4. Réponses: 1
    Dernier message: 27/07/2005, 17h08
  5. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo