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 :

Comment faire une boucle sur l’événement "Click" de PictureBox


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Points : 101
    Points
    101
    Par défaut Comment faire une boucle sur l’événement "Click" de PictureBox
    Bonjour à Tous,

    Cela fait un bail que je ne suis pas venu chercher de l'aide, mais ce matin je bute sur un problème, sans doute simple, mais pourtant sans trouver comment m'y prendre.
    J'ai recréer la palette des 56 couleurs VB avec des picturebox et voici le code pour chaque bouton

    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
    Public Sub PictureBox1_Click()
    On Error GoTo erreur
     
    Call adresse 'j'appel le code qui détermine la ligne avec la colonne de début et de fin du coloriage 
     
    For C = C To F ' C = colonne de début, F colonne de fin dans la procédure "adresse"
    frmMain.MSFlexGrid1.Col = C
    frmMain.MSFlexGrid1.Row = Ligne
     
     
    frmMain.MSFlexGrid1.CellBackColor = Picture1.BackColor 'je colore les cellules du Flexgrid avec la couleur du picturbox sur lesquel je click
    Next C
     
     
     
    erreur:
     
    End Sub

    Existe-t-il un moyen plus simple que de répéter mon code 56 fois avec une boucle sur l’événement click des picturebox ? J'avoue que je suis un peu perdu

    Merci pour votre aide

    cordialement

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Surement avec un tableau de contrôles.

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Points : 101
    Points
    101
    Par défaut
    Merci je vais étudier ça...

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 078
    Points : 17 152
    Points
    17 152
    Par défaut
    Salut

    Une variante, avec un seul PictureBox.
    Créer une image de damier de 56 couleurs souhaitées qui sera chargé dans Picture1, et ce
    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
    Option Explicit
    'Pour lire la couleur du pixel sous le curseur
    Private Declare Function GetPixel Lib "gdi32" _
    (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
    Dim Couleur As Long
     
    Private Sub Form_Load()
    Shape1.FillStyle = 0 'solid
    Shape1.Move 60, 60, 315, 315
    Shape2.FillStyle = 0 'solid
    Shape2.Move Shape1.Left + Shape1.Width + 15, 60, 315, 315
    Picture1.ScaleMode = vbPixels
    Picture1.Move 60, Shape1.Top + Shape1.Height + 15
    End Sub
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Shape1.FillColor = GetPixel(Picture1.hdc, X, Y)
    End Sub
    Private Sub Picture1_Click()
    Couleur = Shape1.FillColor
    Shape2.FillColor = Couleur
    End Sub
    Shape1 permet de vérifier les couleurs balayées en pasant sur le PictureBox, Shape2 permet de confirmer la couleur sélectionnée au moment du clique sur le PictureBox, et enfin la variable Couleur contient la valeur à indiquer dans ton MSFlexGrid1.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Points : 101
    Points
    101
    Par défaut
    merci comme d'habitude ton code marche impeccable

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

Discussions similaires

  1. Comment faire une boucle sur handles.text(i)
    Par beloboy dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 09/01/2014, 22h53
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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