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 6 et antérieur Discussion :

Aide pour textBox


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Aide pour textBox
    Voila mon problème, après avoir demandé de l'aide hier sur ce forum j'ai réussi à faire quelque chose qui me convient à peu près mais il me reste un problème que je n'arrive pas à résoudre voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub BoutonMesure_Click()
    Dim i As Integer
     
        If i = 10 Then i = 0              ' On vérifie que l'on a pas dépassé les 10 textbox, sinon on passe au premier
        Text(i).Text = MSCommCAN.Input    ' On écrit dans le Text(i) le résultat de la mesure
        Text(i).BackColor = vbWhite       'pour remettre le backcolor en blanc
        i = i + 1
     
    End Sub
     
    Private Sub BoutonCommande_Click()
    Dim i As Integer
     
        MSCommCAN.Output = Text(i).Text
        Text(i).BackColor = vbGreen    'pour mettre en vert le backcolor losque la donnée est envoyée
        i = i + 1
     
     End Sub
    En fait quand ce que je veut c'est que j'appui sur le bouton mesure, j'ai la mesure qui s'affiche dans le text box 1 puis je fais commande je l'envoie le textbox1 devient vert puis je fais une nouvelle fois mesure, une seconde mesure s'affiche dans le text box 2 puis je l'envoi etc et cela pour 10 textbox.
    Mais la avec ce programme, le textbox1 s'éfface à chaque fois et ne passe pas au textbox2.

    Merci d'avance pour vos réponses

  2. #2
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Tout d'abord comme te l'as demande La Praline, prierre d'utiliser les balise de code.

    Citation Envoyé par Aymeric22
    Mais la avec ce programme, le textbox1 s'éfface à chaque fois et ne passe pas au textbox2.
    Pour ton probleme. Je crois que le probleme viens du fait que tu n'as pas utilise le groupe de controle (et pourtant j'avais commence par ca). Je presume donc que tu ne sais pas le mettre en place.

    C'est tout simple.

    renome tous les textbox en Text et a chaque fois increment le numeros d'index. C'est a dire :
    Pour le premier tu aura : Name = Text; Index = 0
    pour le deuxieme : Name = Text; Index = 1
    .....
    pour le dernier (le 10 eme) : Name Text; Index = 9


    Avec ca je crois que ton code devrais marche.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste bidouilleur
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Analyste bidouilleur

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Hello, si je ne m'abuse i devrait etre declaré en variable globale et pas dans les subs.

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Citation Envoyé par Ntotor
    Hello, si je ne m'abuse i devrait etre declaré en variable globale et pas dans les subs.
    Pas forcément

    En déclarant i statique, sa valeur sera conservée entre chaque click. Mais il faudra réititialiser i lorsqu'il aura atteint 10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Static i As Integer
    ...
    i = i + 1
    i = IIf(i = 10, 0, i)
    Si tu ne connais pas la fonction IIf, F1 t'expliquera tout.

    [Edit] Cependant, Ntotor a raison pour un point, si tu utilises un deuxième bouton avec un i déclaré dans sa procédure Click, i vaudra toujours 0 (zéro) parce que pas initialisé. Ce sera donc toujours le contenu de ton premier textbox qui sera envoyé. Il faut revoir la logique de ton interface et de son utilisation.

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je viens de résoudre le problème et il fallait bien que je la déclare en global. Cela fonctionne normalement.
    Mais, zazaraignée ta méthode fonctionne aussi très bien!!

    En tout cas merci à tous pour votre aide

    A bientot

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Bon alors, n'oublie pas de cliquer sur .

    À tout hasard, j'ai fait ce test pour la postérité... J'ai bien sur remplacé l'entrée de données de ton périphérique par un inputBox. J'ai mis un groupe de labels (lblMesureEnvoyee) avec une bordure et un fond vert, invisibles au départ. Un textbox verrouillé (Locked = False) pour empêcher la saisie directe. Un autre groupe de labels (Label1, j'avais oublié de le nommer...) servent à identifier la mesure (Mesure 1, Mesure 2... Facultatif).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
    Private i As Integer
     
    Private Sub Form_Load()
        ' Initialiser i, ça fait un code plus propre.
        i = 0
        ' et
        txtMesure.Locked = True 'empêche la saisie directe
    End Sub
     
    Private Sub cmdMesurer_Click()
        txtMesure.Text = InputBox("Entrez une donnée", "Mesure", "valeur " & i + 1)
        cmdEnvoyer.SetFocus
    End Sub
     
    Private Sub cmdEnvoyer_Click()
        lblMesureEnvoyee(i).Caption = txtMesure.Text
        'le code spécifique à l'envoi de donnée
        '...
     
        'le code pour l'affichage
        lblMesureEnvoyee(i).Visible = True
     
        ' incrémentation
        i = i + 1
     
        ' si les mesures sont finies,
        If i = 10 Then
            ' désactiver les boutons de mesure et d'envoi, et le textbox
            cmdMesurer.Enabled = False
            cmdEnvoyer.Enabled = False
            txtMesure.Visible = False
            ' si nécessaire
            'i = 0
          Else  ' sinon
            ' vider le textbox
            txtMesure.Text = ""
            ' déplacer le textbox et continuer
            txtMesure.Top = lblMesureEnvoyee(i).Top
            ' préparer et afficher le label du champ suivant
            Label1(i).Caption = "Mesure " & i + 1 & " :"
            Label1(i).Visible = True
            ' donner le focus au bouton de mesure
            cmdMesurer.SetFocus
        End If
     
    End Sub
     
    Private Sub cmdFermer_Click()
        End
        ' ou
        'Unload me
        ' ou
        'Me.Hide  ' il faut alors remettre i à zéro et vider les lblMesureEnvoyee
        ' c'est selon...
    End Sub
    Tout marche en appuyant sur Entrée sans cliquer nullepart.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ok merci je prends note sa pourra probablement me servir.

    Merci beaucoup

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

Discussions similaires

  1. [Débutant] Aide pour Mysql et Textbox svp
    Par Oo-Seven dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/09/2011, 03h12
  2. [XL-2007] Rech aide pour text dans TextBox avec macro
    Par shaki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2009, 12h15
  3. Besoin d'aide pour bloquer un nombre sur une TextBox
    Par Torrent74 dans le forum Flash
    Réponses: 2
    Dernier message: 24/10/2007, 20h14
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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