Envoy Winsock

alex2100 Messages postés 44 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 16 décembre 2008 - 22 févr. 2008 à 01:41
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 févr. 2008 à 07:00
Bonjour à tous,

Bon voilla. J'ai un application qui a 10 Hscroll(i) Indexer portant le meme nom,

Sur cette application j'ai un winsock qui recois des données d'un autre winsock coté client.

Dans ma form client j'ai aussi 10 Hscroll(i) indexer. Quand je modifie l'un des scrolls j'envoyer ceci.

Private Sub HScroll1_Change(Index As Integer)
For i = 0 To 7


 


If Not Winsock1.State = sckConnected Then
Else
If AngleServo(i).Text <> HScroll1(i).Value Then
AngleServo(i).Text = HScroll1(i).Value
End If
Winsock1.SendData AngleServo(i).Text
End If


Next i




End Sub

Du coté serveur je recois bien la modification et mon scroll s'ajuste automatique.

le code est le suivant
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim tmpData As String
Winsock1.GetData dat, vbString
Dim ligne As String
ligne = "[test=" & dat & "]"
test = Recherche(ligne, "[test=", "0000000]")
HScroll(i).Value = test
'AngleServo(0).Text = test


End Sub

Le petit probleme est que sa fonctionne pour le premier scroll bar mais pas pour les suivant. Je ne suis pas capable de récuper du coté serveur le quel scroll a été bouger. Je ne sais pas comment récuper l'index de scroll.

Merci de bien voullour m'éclairer.

Jean-Alexandr

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2008 à 07:00
If Not Winsock1.State = sckConnected Then
Else

c'est beau, ça !

If Winsock1.State = sckConnected Then

ferait pareil, cependant...

pour ton probleme, il faudrait que tu groupes tes infos en une seule string a envoyer, séparées, par exemple par des ";"

HScroll1(1).Value & ";" & HScroll1(2).Value & ";" & HScroll1(3).Value & ";" & HScroll1(4).Value & ";" ...

ainsi, a l'arrivée, te suffira de faire un Split pour obtenir un tableau, et en unboucle, ensuite, c'est affecté aux scrollbars

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 févr. 2008 à 07:00
salut,

euh.... beh pour commencer, nous fournir le code de la fonction RECHERCHER, çà aurait pu aider.
ici concrêtement, plusieurs choses :

le client (jusqu'à preuve du contraire) n'a qu'une souris?... donc ne peut bouger qu'une scroll à la fois.
alors pourquoi boucler? éventuellement envoyer au début de connexion pour initialiser toutes les scroll mais c'est tout.
(ps : tu boucles sur 8 mais il y en a 10? et autant de zones de texte? manque de précision!!)

' CLIENT
Private Sub HScroll1_Change(Index As Integer)
    AngleServo(Index).Text =  HScroll1(Index).Value
    If Winsock1.State = sckConnected Then
        Winsock1.SendData AngleServo(Index).Text ' ***
        DoEvents
    End If
End Sub

côté serveur tu reçois le paquet et l'attribue au scroll i?
i correspond à quoi?

à supposer (manque de précision!!) qu'il y ait autant de scroll sur le client que le serveur, il faut bien envoyer l'index concerné pour l'attribuer comme il faut sur le serveur

donc client, la ligne avec ' *** , on modifie pour :
Winsock1.SendData Index & "@" & AngleServo(Index).Text

le serveur va recevoir un message du genre 3@45

' SERVEUR
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim tmpData As String, Index As Integer
    
    Winsock1.GetData tmpData, vbString
    Index  = Left(tmpData, InStr(1, tmpData,
"@") - 1)
    AngleServo(Index).Text = Right$(tmpData, Len(tmpData) - InStr(1, tmpData, "@"))
    HScroll(Index).Value = Val(AngleServo(Index).Text)
End Sub

çà devrait déjà aller un peu mieux...
si çà ne correspond pas tout à fait, soit plus précis ;)

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous