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 :

petit programme avec une procedure


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 30
    Points
    30
    Par défaut petit programme avec une procedure
    bonjour à tous
    voilà j'ai un programme que je n'arrive pas à creer correctement , le but de ce programme est d'augmenter de une unité une variable numérique à chaque fois que l'on presse sur un bouton
    voici le code que j'ai placé dans le boutton,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim nombre1 As Short
     
    nombre1 = TextBox1.Text
     essai(nombre1)
    TextBox2.Text = CStr(nombre1)
    dans ce programme, la procédure est "essai", je l'ai mise dans un module standard dans le quel j'ai placé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Sub essai(ByRef result As Short)
    result = result + 1
    End Sub
    voila mon problème est que si j'écris "2" dans textbox1, et que je presse sur le bouton, textbox2.text va être égale à "3" mais le problème c'est que si je presse de nouveau sur le bouton il ne se passe rien , or j'aimerais que le textbox1 ne change pas de valeur mais que le textbox2 augmente de 1 chaque fois, donc égale à 4 et puis 5 et ainsi de suite

    merci de laisser des explications les plus claires possibles. Et par la même occasion si vous pouviez m'expliquer aussi la différence entre les procédures sub et fonction et les mots-clés "Byval" et "Byref" , ce serait bien gentil

    merci ^^ (suis débutant)

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    byval, une copie de la variable est passée
    byref, c'est la variable elle meme qui est passée

    donc dans ta sub si tu modifie la valeur d'unbyref, celui qui te l'a passé est aussi modifié, alors qu'avec byval c'est comme une autre variable que tu peux modifier sans que ca change la valeur de l'appelant

    dans ton probleme il faudrait un peu plus de code pour localiser ton erreur
    à savoir que dim initialise la variable à 0, sauf si ce dim est dans la classe et non dans la sub (dans ce cas mis à 0 seulement au chargement de la classe)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Points : 337
    Points
    337
    Par défaut
    Moi je ferais ça sur l'événement click de ton bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim nombre1 As Short = CType(Me.TextBox1.Text, Short)
    nombre1 += 1
    Me.TextBox1.Text = nombre1.ToString
    Pour bien faire, il faudrait biensur vérifier que la valeur du TextBox est numérique au risque d'avoir une erreur.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    pouvez vous m'expliquer le bout de code :

    Ctype(Me.TextBox1.Text, Short)
    que fais ce bout de code?
    ainsi que la dernière ligne:
    Me.TextBox1.Text= nombre1.ToString

    merci d'avance

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ctype(Me.TextBox1.Text, Short)
    Le ... truc ... CType permet de changer le type d'un objet. Normallement, la valeur Me.TextBox1.Text est de type String et en appelant CType(...,Short), on convertit la valeur du type String vers le type Short ( on convertit une chaine vers un nombre ... ). Bien sur, une erreur est généré si la chaine n'est pas convertible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.TextBox1.Text= nombre1.ToString
    nombre1 est un Short, nombre1.ToString est ... un String, et on assigne cette dernière valeur au texte de la TextBox1.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    merci
    :p

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/09/2005, 10h09
  2. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  3. [SRC] Petit programme avec BD
    Par Nico62 dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/01/2005, 20h07
  4. [C#] [Oracle] Probleme avec une procedure stockée
    Par sronin1 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/05/2004, 19h04
  5. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00

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