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

VB.NET Discussion :

Probleme de visibilite de variable


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut Probleme de visibilite de variable
    Salut,

    Pour m eclaircir les idees, j aurais trois questions svp

    1) Pour declarrer des variables en globales, y a t il plusieurs moyens ou faut il forcement creer un module et declarrer a l interieur de ce module les variables par le mot cle Public ?

    2) Je ne n arrive po a comprendre la difference entre Public et Public Shared. Si quelqu un pouvait m expliquer en 2 mots svp.

    3) imaginons que dans ma form2 je cre un label Label8. Je ne comprends pas pourquoi le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form2.Label8.Text = "toto"
    ecrit dans la form1 ne me donne pas d erreur, pour autant quand je regarde la form2 le label ne contient pas le texte "toto" . Pourquoi ?

    Merci

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    Salut,

    1) Pour declarrer des variables en globales, y a t il plusieurs moyens ou faut il forcement creer un module et declarrer a l interieur de ce module les variables par le mot cle Public ?
    Je crois qu'il n'y a pas d'autres solutions.

    2) Je ne n arrive po a comprendre la difference entre Public et Public Shared. Si quelqu un pouvait m expliquer en 2 mots svp.
    ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.fr/dv_vbalr/html/2bf7cf2c-b0dd-485e-8749-b5d674dab4cd.htm
    Le partage d'un membre d'une classe ou structure le rend disponible à chaque instance, au lieu d'avoir chaque instance qui conserve sa propre copie. Par exemple, le fait que la valeur d'une variable s'applique à l'application entière est utile. Si vous déclarez la variable comme étant Shared, toutes les instances accéderont au même emplacement de stockage, et si une instance modifie la valeur de la variable, toutes les instances accèdent à la valeur mise à jour.

    3) imaginons que dans ma form2 je cre un label Label8. Je ne comprends pas pourquoi le code
    Code :

    Form2.Label8.Text = "toto"

    ecrit dans la form1 ne me donne pas d erreur, pour autant quand je regarde la form2 le label ne contient pas le texte "toto" . Pourquoi ?
    Parce qu'il faut faire référence à l'instance et non la classe. Regarde du côté owner

    Gwendal

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    1) bah si justement, il y a un autre moyen, qui plus est non spécifique à VB (alors que les modules n'existent pas ailleurs) :

    Tu crées une classe public ou friend, suivant la portée que tu veux lui donner, et tu lui attribue des champs "shared".
    "shared" est l'équivalent de static dans les autres langages.

  4. #4
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Lol, bah ca m aide po a y voir plus clair tout ca

    1)
    1) bah si justement, il y a un autre moyen, qui plus est non spécifique à VB (alors que les modules n'existent pas ailleurs) :

    Tu crées une classe public ou friend, suivant la portée que tu veux lui donner, et tu lui attribue des champs "shared".
    "shared" est l'équivalent de static dans les autres langages.
    Y a t il une valeur ajoute a faire comme ca ?


    2) J ai tjs pas capte shared et public.
    Est ce que la difference est que Public shared est utilise quand on definit la variable dans une classe est qu elle sera vu en dehors de cette classe, et Public qund on definit cette variable dans un module ? ... je nage un peu la


    3) j ai po compris non plus

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut Slumpy,

    Je crois qu'il faut que tu te lises un bouquin sur les rudiments de la POO, afin que tu assimiles bien les bases de ce concept, en particulier les notions de classe (la définition de l'objet) et d'instance de classe (l'objet concret).

    Il y a aussi beaucoup de tutos sur ce même site, bien écrits par des gens bien meilleurs pédagogues que moi.

    Donnes-toi franchement la peine de lire ça, ça vaut le coup.

    Bon courage,

    JM

  6. #6
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Yo,

    Je ne suis pas expret en OO c clair, mais j ai deja fait du Java. Je c ce qu est une classe et un objet de cette classe.

    Je crois que mon probleme vient du fait qu en VB, je suis reste scotche a VB6. Je crois que je mixe trop du vb6 et .net

    Par exemple, ok une form est une class now, mais faut il l instancier ?

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Une form est un concept non lié au modèle objet. Par contre il existe une classe nommée Form dans le namespace System.Windows.Forms qui modélise un formulaire. Pour être utilisée, il faut définir de nouvelles classes qui en héritent et qui contiennent des composants. Ce sont les instances de ces classes dérivées que tu vas manipuler dans ton appli.

    Je suis d'accord avec jml94, au vu de ta dernière réponse, je pense que tes connaissances objet sont un peu rouillées, tu devrais suivre son conseil à propos de la lecture des didacticiels.

    Ceci étant, concernant la différence entre Public et Public Shared :
    - Public signifie que chaque instance de la classe concernée aura accès à sa propre copie de l'attribut/propriété, cet attribut/propriété sera de plus accessible par des classes externes.
    - Public Shared signifie que toutes les instances d'une classe donnée accèderont à la même copie de l'attribut/propriété et que lorsqu'une instance modifiera cette valeur, la modification affectera toutes les autres instances de la classe. Cet attribut/propriété est accessible depuis des classes externes.

  8. #8
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Ha cool, j ai capte la difference entre Public et Public shared merci.

    Oui oui, bien sur que je suis entrain de lire des tutos etc, j ai bien conscience que je dois affiner/eclaircir tout ca

    Merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Probleme de visibilité de variable globale
    Par ygu406 dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2012, 12h54
  2. petit problem de transfer de variable entre page
    Par Damarus dans le forum Langage
    Réponses: 8
    Dernier message: 11/09/2005, 12h56
  3. Réponses: 3
    Dernier message: 01/09/2005, 11h56
  4. [web] Probleme de passe de variable qd j utilise un module TK
    Par Slippers dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 19/04/2005, 17h48
  5. [VB.NET] Problem de récupération de variable avec une DLL
    Par ludovic85 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 19/01/2005, 11h37

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