Ayudenme con esto porfavor tengo lo siguiente:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos
'num = Len(datos)
Select Case Left(datos, 4)
Case "Rojo"
RichTextBox1.SelColor = &HFF& '=rojo
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos )
Case "Azul"
RichTextBox1.SelColor = vbBlue
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos + vbCrLf)
Case "Verd"
RichTextBox1.SelColor = vbGreen
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos )
Case "Amar"
RichTextBox1.SelColor = vbYellow
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos )
Case "none"
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos )
Case Else
'RichTextBox1.SelColor = &HFF& '=rojo
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos )
End Select
End Sub
de esta manera recibo los datos del otro lado y puedo cambiarles de color .
y de esta manera los envio.
Private Sub Command1_Click()
On Error Resume Next
Dim enviar As String
Dim color As String
enviar = Text1.Text
color = Combo1.Text
Winsock1.SendData color + enviar
End Sub
Si se pueden dar cuenta envio el color junto con el texto pero.
en el comobo tengo esta lista.
Rojo
Azul
verd
Amar
none
si me paso al poner mas de 4 carcateres me falla por que al recibir lo tengo solo con 4 y al recibir el mensaje me sal esto.
servidor diceRojo hola como estas
y la idea es que no salga la palabra rojo nose si alguien me puede ayudar a mejorar este codigo porfavor.
cundo envies la cadena enviala asi
Winsock1.SendData color & "|" & enviar
y cuadno la recibes solo tenes que separr las dos cadenas,. con un simple Split()
en el DataArrival() pon esto
cadenas = Split(datos, "|") 'desglosa la cadena
color = cadenas(0) 'en esta variable almacena el color
texto = cadenas(1) 'en esta variable almacena el texto
yo diria que envies el color en hexadecimal, asi no tengras que usar condicion if o case y pones el color directamente al desglosar la cadena asi:
RichTextBox1.SelColor = color
entendes?
bueno espero te sirva.
avisa si tienes alguna duda
pd: sry no avia visto que postiaste
suerte
El MaRo!
Osea quieres que lo reciba de esta manera.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Dim color As String
Dim Dice As String
'Dim Pos As Integer
Winsock1.GetData datos
cadenas = Split(datos, "|") 'desglosa la cadena
color = cadenas(0) 'en esta variable almacena el color
Dice = cadenas(1) 'en esta variable almacena el texto
RichTextBox1.SelColor = color
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice :" + Dice + vbCrLf)
End Sub
Y que lo envie de esta.
Private Sub Command1_Click()
On Error Resume Next
Dim enviar As String
Dim color As String
enviar = Text1.Text
RichTextBox1.SelText = RichTextBox1.SelText + "Servidor Dice= " + Text1.Text + vbCrLf
'color = Combo1.Text
Winsock1.SendData color & "|" & enviar
End Sub
no me funciona de esa manera =(
a y otra cosa nose si esto funcionara.
el color lo saco de aca. mira.
'esta en un boton que dice colores
Dim color As String
cdl.ShowColor
'RichTextBox1.SelColor = cdl.color
'RichTextBox1.Text = cdl.color
color = cdl.color
el cdl es el CommonDialog para los colores.
nose si eso es posible pero bueno eso hice y no funciona =(
plz ayudar =(
:huh: es para un chat.......... :huh: man, ya te esplicaron como diferenciar los datos que llegan y envias, fijate bien ;)
Para No agarrar la palabra rojo haces como te dice ElMAro y si no haces asi :
Siempre y cuando la cadena que te envian con el color tenga "4Digitos" he
Declaras otra variable ejemplo :
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Dim SinColor as string'<--Nueva VAriable
Winsock1.GetData datos
'num = Len(datos)
SinCOlor=Mid(datos,5)<--Aca le asignas del 5to caracter hasta el final de la cadena
Select Case Left(datos, 4)
Case "Rojo"
RichTextBox1.SelColor = &HFF& '=rojo
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor )
Case "Azul"
RichTextBox1.SelColor = vbBlue
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor + vbCrLf)
Case "Verd"
RichTextBox1.SelColor = vbGreen
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor )
Case "Amar"
RichTextBox1.SelColor = vbYellow
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor )
Case "none"
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor )
Case Else
'RichTextBox1.SelColor = &HFF& '=rojo
RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + SinCOlor )
End Select
End Sub
Leete TRATAMIENTO DE CADENAS funciones Mid,Left,Instr,etc,etc,
Un Saludo .-.