retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007
-
12 juil. 2004 à 21:17
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008
-
13 juil. 2004 à 02:58
voila, j'ai créer un chat, avec un groupe de winsock, et j'aimerai que lorque l'un d'eux se connecte, les index soi déplacés, qu'il n'y ai jamais d'index vide. j'ai essayer ça mais ça marche pas:
If Winsock1.Count > 2 Then ' si il y a qu'une personne connectée, on vas pas lui envoyer le message quand elle se déconecte ;)
Unload Winsock1(index)
Text1.Text = Text1.Text & vbCrLf & "unload"
Load Winsock1(index)
Text1.Text = Text1.Text & vbCrLf & "load"
For i = index To (Winsock1.Count - 1) 'décale lors d'une connexion
Unload Winsock1(i)
Text1.Text = Text1.Text & vbCrLf & "unload"
Load Winsock1(i)
Text1.Text = Text1.Text & vbCrLf & "load"
Winsock1(i) = Winsock1(i + 1)
Text1.Text Text1.Text & vbCrLf & "winsock(" & i & ") winsock(" & i +1 1 & ")"
Next i
Winsock1(Winsock1.Count - 1).Close
Text1.Text = Text1.Text & vbCrLf & "fermeture du dernier winsock"
Unload Winsock1(Winsock1.Count - 1) 'enlève le dernier client
end if
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 juil. 2004 à 22:45
Salut retaks666
J'ai été confronté à la même recherche et il n'est pas possible de savoir si un objet à été Unloadé ou pas.
Par contre, j'ai trouvé cette astuce :
Au lieu de Unloader un objet, je mets simplement le texte "Libre" dans sa propriété Tag.
Ensuite, quand je cherche un objet libre, je n'ai qu'à chercher avec la petite séquence :
Dim Trouvé As Boolean
For r = 1 To MonObjet.Count
If MonObjet(r).Tag = "Libre" Then
' Objet est libre ...
Trouvé = True
MonObjet(r).Tag = "" ' Annule le flag
Exit For
End If
Next r
If Not Trouvé Then
' S'il n'y en a pas, on en charge un nouveau
Load MonObjet(MonObjet.Count + 1)
End If
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 13 juil. 2004 à 00:36
hum non c'est pas tellement savoir s'il a été déchargé que je veux, je veux juste décalé tous les éléments du groupe a partir d'un index, d'1, par exemple, dans un groupe de 5 winsock, le 3 ferme, alors le numero4 vas devenir 3, le 5 le 4, et le 5 se décharge... et je ne trouve pas comment faire.
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 13 juil. 2004 à 02:58
Salut,
je ne saisis pas trop car si ils sont indéxés, ils ont le même code. En admettant qu'il y ai un select case
case 1
case 2
case 3
case 4
case 5
si le 5 est unloadé, le case 5 ne sera jamais appelé
en déchargeant juste le dernier, le code reste identique.
en supposant que le 4 devienne le 3, puisque le 4 a le même code que le 3, que le 4 devienne 3 ne changera rien, le code sera executé sur l'index.