Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 11 sur 11
  1. #1
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut Boutons dynamique compteur

    bonsoir cher développeur,
    j'ai besoin de votre aide j'ai créer des boutons de façon dynamique et j'ai créer une matrice de caractère. tel que, si je clique sur un bouton, la matrice sera chargé par des lettre "b" dans la position cliqué ainsi son voisinage. Voici mon code aidez moi svp:
    NB i , k compteur de la matrice
    i3,j3 sont ceux des boutons
    NB2: il semble que les compteurs ne sont pas pris en considération et c'est pour ca j'ai pas eu les résultats souhaités

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim i3 As Integer : Dim j3 As Integer
            Dim i As Integer : Dim k As Integer
            Dim Mat(7, 7) As String
            Dim C(i3, j3) As Button
     
            C(i3, j3) = CType(sender, Button)
     
                i = i3
                k = j3
                Mat(6, 6) = " bb" : Mat(5, 5) = "bb" : Mat(6, 5) = "bb" : Mat(6, 7) = "bb" : Mat(5, 6) = "bb" : Mat(7, 6) = "bb" 
                Mat(7, 7) = "bb" : Mat(5, 7) = "bb" : Mat(7, 5) = "bb"

  2. #2
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 387
    Points : 3 868
    Points
    3 868

    Par défaut

    Bonjour,

    Init des éléments
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Const XMax As Integer = 7
        Const YMax As Integer = 7
        Dim Mat(XMax, YMax) As String
     
        Private Sub frmManipTextBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CreButton()
            For k As Integer = 0 To XMax
                For l As Integer = 0 To YMax
                    Mat(k, l) = ""
                Next
            Next
        End Sub
    Création des boutons
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Sub CreButton()
            Dim Btn(7, 7) As Button
            For i As Integer = 0 To XMax
                For j As Integer = 0 To YMax
                    Btn(i, j) = New Button()
                    Btn(i, j).Name = "Button" & i & j
                    Btn(i, j).Text = "Button" & i & j
                    Btn(i, j).Top = (i) * 25
                    Btn(i, j).Left = 20 + (j * 75)
                    Btn(i, j).Tag = i & "|" & j
                    AddHandler Btn(i, j).Click, AddressOf DynamicButton_Click
                    Me.Controls.Add(Btn(i, j))
                Next
            Next i
        End Sub
    Marquage sur Clic bouton
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            MarqueBBMatrice(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
        End Sub
     
        Sub MarqueBBMatrice(ByVal i As Integer, ByVal j As Integer)
            Dim XDebut As Integer
            Dim XFin As Integer
            Dim YDebut As Integer
            Dim YFin As Integer
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1
            ' marque les BB
            For k = XDebut To XFin
                For l = YDebut To YFin
                    Mat(k, l) = "BB"
                Next
            Next
        End Sub
    A+, Hervé.

  3. #3
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    merci cher ami pour ton aide tu ma sauver la vie

  4. #4
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    bonsoir comment je fait si je ve faire cela :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Mat(i, j) = "BB"
            Mat(XDebut, j) = "BB"
            Mat(XFin, j) = "BB"
            Mat(XFin, YDebut) = "BB"
            Mat(i, YDebut) = "BB"
            Mat(XDebut, YDebut) = "BB"
            Mat(XDebut, YFin) = "BB"
            Mat(i, YFin) = "BB"
            Mat(XFin, YFin) = "BB"
    cad si je clique sur un bouton les 9 position seron lui reservé cad le bouton cliqué et son voisinage ne peuvent avoir que un backcolor=color.red
    et qui reste auront un backcolor=color.yellow

  5. #5
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 387
    Points : 3 868
    Points
    3 868

    Par défaut

    Bonjour,

    Comme les boutons ont été construit avec un nom contenant les indices il suffit de faire un DirectCast sur le nom des boutons dans la collection des contrôles de la fenêtre.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1 Else XFin = i
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1 Else YFin = j
            ' marque les BB et colorise les boutons
            For k As Integer = XDebut To XFin
                For l As Integer = YDebut To YFin
                    Mat(k, l) = "BB"
                    DirectCast(Me.Controls("Button" & k.ToString & l.ToString), Button).BackColor = Color.Red
                Next
            Next
    Citation Envoyé par king2070 Voir le message
    ... et qui reste auront un backcolor=color.yellow
    Ils sont jaune au départ, ou il faut que tout les boutons hors zone matrice soient jaune ?
    A+, Hervé.

  6. #6
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    bon daccord je vais vous dire c'est koi mon probleme o juste
    enfaite moi j'ai 4 joueur rouge,jaune , vert , bleu

    et j'ai un text box(sous le nom de n=0) qui affiche le joueur qui va cliqué pour changer le backcolor
    si n.text=1
    le joueur rouge clique et par suite la case cliqué aura un backcolor rouge
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si nchange(n.tex<>1) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.text=2
    le joueur jaune clique et par suite la case cliqué aura un backcolor jaune
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>2) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.tex=3
    le joueur vert clique et par suite la case cliqué aura un backcolor vert
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>3) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible

    si n.tex=4
    le joueur bleu clique et par suite la case cliqué aura un backcolor bleu
    et par suite la case cliqué ainsi son entourage sera lui reserve c'adire si n change(n.tex<>4) et un joueur veut cliqué sur une case qui est reserve un msgbox affiche construction impossible
    NB:joueur bleu Mat(k, l) = "BB"
    jaune "jj"
    vert "vv"
    rouge"rr"
    NB2 :entourage=entourage indiqué precedement

  7. #7
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    voici le code j'ai ecrit mais ca nmarche pas
    Code :
    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
     If Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage IsNot empty.BackgroundImage Then
                Form10.Show()
            Else
     
     
                If N.Text = 1 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("RR" Or "JJ" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = B.BackgroundImage
                    End If
                    MarqueBBMatricebleu(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 2 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("BB" Or "JJ" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = R.BackgroundImage
                    End If
                    MarqueBBMatricerouge(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 3 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("RR" Or "BB" Or "VV") Then
                        Form10.Show()
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = J.BackgroundImage
                    End If
                    MarqueBBMatricejaune(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
     
                ElseIf N.Text = 4 Then
                    If Mat(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)) = ("BB" Or "JJ" Or "RR") Then
                        Form10.Show()
     
                    Else
                        Btn(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1)).BackgroundImage = V.BackgroundImage
                    End If
                    MarqueBBMatricevert(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
     
                End If
            End If

  8. #8
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 387
    Points : 3 868
    Points
    3 868

    Par défaut

    J'ai préparé un exemple

    Définition form
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Const XMax As Integer = 7
        Const YMax As Integer = 7
        Const KConstruitRouge As String = "CR"
        Const KReserveRouge As String = "RR"
        Const KConstruitVert As String = "CV"
        Const KReserveVert As String = "RV"
        Const KConstruitBleu As String = "CB"
        Const KReserveBleu As String = "RB"
        Const KConstruitJaune As String = "CJ"
        Const KReserveJaune As String = "RJ"
     
        Dim Mat(XMax, YMax) As String
        Dim Btn(XMax, YMax) As Button
        Dim NumJoueur As Integer
    Les méthodes de mise en oeuvre,
    Code :
    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
        Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            MarqueMatrice(Split(CType(sender, Button).Tag, "|")(0), Split(CType(sender, Button).Tag, "|")(1))
        End Sub
     
        Sub MarqueMatrice(ByVal i As Integer, ByVal j As Integer)
            Dim XDebut As Integer
            Dim XFin As Integer
            Dim YDebut As Integer
            Dim YFin As Integer
            Dim Construction As String
            Dim Reservation As String
            Dim couleur As Color
     
            ' Détermine les couleurs à traiter
            Select Case txtNumJoueur.Text
                Case "1"
                    Construction = KConstruitRouge
                    Reservation = KReserveRouge
                    couleur = Color.Red
                Case "2"
                    Construction = KConstruitJaune
                    Reservation = KReserveJaune
                    couleur = Color.Yellow
                Case "3"
                    Construction = KConstruitVert
                    Reservation = KReserveVert
                    couleur = Color.Green
                Case "4"
                    Construction = KConstruitBleu
                    Reservation = KReserveBleu
                    couleur = Color.Blue
                Case Else
                    MessageBox.Show("Joueur inconnu")
                    Exit Sub
            End Select
            ' droit de construire
            If Not (Mat(i, j) = Reservation Or Mat(i, j) = "") Then
                MessageBox.Show("Construction impossible")
                Exit Sub
            End If
            ' colore le bouton
            DirectCast(Me.Controls("Button" & i.ToString & j.ToString), Button).BackColor = couleur
            ' calcule la zone matrice
            If i > 0 Then XDebut = i - 1
            If i < XMax Then XFin = i + 1 Else XFin = i
            If j > 0 Then YDebut = j - 1
            If j < YMax Then YFin = j + 1 Else YFin = j
            ' marque les réservations
            For k As Integer = XDebut To XFin
                For l As Integer = YDebut To YFin
                    If Not Mat(k, l).Contains("C") Then Mat(k, l) = Reservation
                Next
            Next
            ' marque la construction
            Mat(i, j) = Construction
        End Sub
    Je n'ai pas eu le temps de voir ton code, je regarderai un peu plus tard.

    A+, Hervé.

  9. #9
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    desolé une derniere chose si je veut remplacer le backcolr par des backgroundimage quesque je fai
    NB
    B.backgroundimage=tof voiture bleu
    R.backgroundimage=tof voiture rouge
    J.backgroundimage=tof voiture jaune
    V.backgroundimage=tof voiture vert
    mercii pour votre aide

  10. #10
    Invité de passage
    Homme Profil pro anouar belkadi
    futur ingenieur genie electrique
    Inscrit en
    février 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme anouar belkadi
    Localisation : Tunisie

    Informations professionnelles :
    Activité : futur ingenieur genie electrique

    Informations forums :
    Inscription : février 2013
    Messages : 30
    Points : 0
    Points
    0

    Par défaut

    c'est bon probleme resolu
    merci mon cher ami c'est un tré beau travail

  11. #11
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 387
    Points : 3 868
    Points
    3 868

    Par défaut

    De rien,
    Pensez à mettre en résolu.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •