Pb sur la selection de picturebox

neotetsuo34 Messages postés 68 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 mars 2007 - 12 nov. 2004 à 13:55
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 15 nov. 2004 à 01:09
en vb6 je dois arriver à sélectionner certaines picturebox. C'est a dire je dois selectionner les picturebox qui ont un coté libre à gauche ou à droite, mais je ne vois pas du tout le code necessaire a cela. Merci de votre aide.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 nov. 2004 à 17:53
Salutneotetsuo34
"les picturebox qui ont un coté libre à gauche ou à droite" : ça veut dire quoi ?

Vala
Jack
NB : Je ne répondrais pas aux messages privés
0
neotetsuo34 Messages postés 68 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 23 mars 2007
12 nov. 2004 à 19:07
si on colle plusieurs picturebox les uns a cotés des autres ceux placés en bout auront un cotés libre.en fait je dois faire le mahjongg je sais pas si tu connais on ne pe selectionner que les blocs qui ont un coté libre. et c'est ca que j'arrive pas a coder.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
12 nov. 2004 à 20:44
pourquoi tu conserves pas la position des picturebox dans une table à 2 dimensions. et en consultant ta table tu sauras si les cases précédentes sont libres ou non.

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
15 nov. 2004 à 01:09
dans mon exemple, les mahjong sont des TextBox.
j'en ai mis 100 donc 100 cases numérotées de 1 à 100, et disposées dans un rectangle de 10 sur 10.
pour créer le "Layout" il faut d'abord cliquer sur Command1.
j'ai simplifié les règles pour l'exemple, à toi d'adapter le code.

Dim Table() As Integer
Dim Pos()   As Integer
Dim n       As Integer
Dim i       As Integer
Dim j       As Integer
Dim sel     As Integer
Dim ix      As Integer
Dim jx      As Integer

Private Sub Command1_Click()
    Dim X As Integer
    Dim Y As Integer
    
    ReDim Table(100)
    ReDim Pos(11, 11)
    
' recherche 100 nombres au hasard    i 1: j 1
    For n = 1 To 100
        X = Int(Rnd * 100) + 1
        If Table(X) = 0 Then
           Table(X) = 1
           Pos(i, j) = X           i i + 1: If i > 10 Then i 1: j = j + 1
           Else
           n = n - 1
           End If
        Next
        
' affichage sur 10x10
    n = 0
    For j = 1 To 10
        Y = j * 50
        For i = 1 To 10
            X = i * 50
            n = n + 1
            Load Text1(n)
            Text1(n).Move X, Y
            Text1(n).Text = Pos(i, j)
            Text1(n).Visible = True
            Next
        Next
 
End Sub

Private Sub Text1_Click(Index As Integer)
    Dim Droite As Integer
    Dim Gauche As Integer
    
    i = (Index - 1) Mod 10 + 1
    j = (Index - 1) \ 10 + 1
    n = Pos(i, j)
    Droite = Pos(i - 1, j)
    Gauche = Pos(i + 1, j)
    
' si Libre    If Droite 0 Or Gauche 0 Then
' si pas sélectionné
       If Table(Index) = 1 Then
          Text1(Index).BackColor = vbRed
          Table(Index) = 2
          If sel = 0 Then             sel Index: ix i: jx = j
             Else
             Unload Text1(Index)
             Pos(i, j) = 0
             Unload Text1(sel)
             Pos(ix, jx) = 0
             sel = 0
             End If
             Exit Sub
          End If
' si déjà sélectionnée
       If Table(Index) = 2 Then
          Table(Index) = 1
          Text1(sel).BackColor = vbWhite
          Pos(ix, jx) = 0
          sel = 0
          End If
       End If
End Sub
0
Rejoignez-nous