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 :

Un tbrPressed qui m'Opressed


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut Un tbrPressed qui m'Opressed
    Salut mon site vénéré !

    je reviens a vous avec une question de gros nullos (Le )

    dans une appli j'utilise une barre de menu dans la quelle j'ais plusieur bouton du type : Gras, italic, ...
    Le problème ? ... Quand je clic sur un bouton celui ci devient Pressed et tout ce passe bien. Quand je reclic dessus il reste Pressed mais la saisie du texte elle est Ok.
    Jutilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Case "Gras"
            Button.Value = tbrPressed
            Rch0(SSTab1.Tab).SelBold = Not Rch0(SSTab1.Tab).SelBold
            Button.Value = IIf(Rch0(SSTab1.Tab).SelBold, tbrPressed, tbrUnpressed)
    Le Problème vient certainement du IIf .... mais la j'ai les neuronnes qui s'embrouille.

    Merci cher membre Vénéré de votre aide (Le premier qui se marre .... )

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Et si tu utilisait un FlipFlop ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Button.Value = (Button.Value = False)
    if button.value = false then
        Rch0(SSTab1.Tab).SelBold = False
    else
        Rch0(SSTab1.Tab).SelBold = True
    end if
    Note : en Vb False = 0 et True = -1

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Salut et merci pour ta réponse

    Mais marche pas....

    désolé

    A+

  4. #4
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Bon, je viens de tester, effectivement, çà ne marche pas.
    Je qualifierais le fonctionnement du bouton de la barre d'outils comme buggé.
    La logique de l'etat pressé/levé est vraiement tout sauf intuitive,
    Sans code, le bouton s'enfonce et se releve.
    on peut le forcer a rester enfoncé en mettant tbPressed dans l'evement buttonClick. mais dés que l'on entre dans buttonclick, la valeur de button est toujours tbUnpressed.

    Il faut donc ruser et ne pas utiliser la propriété value comme indiquateur d'etat. ce qui donnerait le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
      Button.Tag = IIf(Button.Tag = "1", "0", "1")
      If Button.Tag = "1" Then
        Button.Value = tbrPressed
      End If
      If Button.Value = tbrUnpressed Then
        MsgBox "Bouton Up", vbOKOnly, Button.Caption
      Else
        MsgBox "Bouton Down", vbOKOnly, Button.Caption
      End If
    End Sub
    On voit bien dans ce code je ne donne jamais la valeur unpressed au bouton.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Salut Delbeke

    Désolé d'avoir mis du temps à répondre mais j'ais un emploie du temps relativement chargé.
    En tout cas merci pour la combine qui marche nickel.
    J'ais remanié la partie Selbold car mon bout de code était un peut "Bizar"
    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 Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "Gras"
            Button.Tag = IIf(Button.Tag = "1", "0", "1")
            If Button.Tag = "1" Then
                Button.Value = tbrPressed
            End If
     
            If Button.Value = tbrUnpressed Then
                Rch0(SSTab1.Tab).SelBold = False
            Else
                Rch0(SSTab1.Tab).SelBold = True
            End If
        Case "Italic"
            .........
     
    End Select
    End Sub
    Un gros
    A+

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

Discussions similaires

  1. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. Réponses: 3
    Dernier message: 22/07/2002, 14h19
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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