Haber si alguien entiende esto?

Iniciado por n3ts4mura1, 1 Agosto 2006, 04:52 AM

0 Miembros y 2 Visitantes están viendo este tema.

n3ts4mura1

socket.

'recibo datos de esta manera.

Dim datos As String
   Winsock1.GetData datos
   RichTextBox1.SelText = (RichTextBox1.SelText +  datos )

'envio datos de esta manera.

Dim enviar As String
   enviar = Text1.Text
   RichTextBox1.SelText = (RichTextBox1.SelText+Text1.Text)
   Winsock1.SendData enviar

ahora ejem esto es lo que tengo yo.

muestro tanto el mensaje que envio yo en richtextbox como el que envio y lo que quiero hacer es que el mesaje que yo envio sea de un color y el que recibo sea de otro alguien sabe como se puede hacer porfavor muy urgido con esto.

-POLACO-

Ponelo asi : tu mismo codigo solo agregas los colores
socket.

'recibo datos de esta manera.

Dim datos As String
   Winsock1.GetData datos
   RichTextBox1.SelColor = vbBlue
   RichTextBox1.SelText = (RichTextBox1.SelText +  datos )

'envio datos de esta manera.

Dim enviar As String
   enviar = Text1.Text
   RichTextBox1.SelColor = vbRed
   RichTextBox1.SelText = (RichTextBox1.SelText+Text1.Text)
   Winsock1.SendData enviar


Funciona asi ??? .-.

n3ts4mura1

Entiendo claro que funciona si lo tenia haci pero hay alguna forma de enviar el dato de color que yo escoja porque el usuario que utiliza el programa escoge el color con el que se lo quiere enviar  al otro nose si me entiendes.

-POLACO-

Tendrias que hacer algo asi ,si un cliente selecciona el color verde por ejemplo cuando envia la data por el winsock deberia enviar algo asi :
Winsock1.SendData "Verde" + lo que quieras enviar
al Recibir la Data tu winsock debe separar la cadena "Verde" de la data y ahi traducir "Verde" por VbGreen o por su correspondiente Nº hexadecimal del color.

If Left(datos,5)="verde" then
RichTextBox1.SelColor = vbGreen
RichTextBox1.SelText = (RichTextBox1.SelText +  datos )
end if


If Left(datos,5)="&HFF&" then
RichTextBox1.SelColor = &HFF&'=rojo
RichTextBox1.SelText = (RichTextBox1.SelText +  datos )
end if

esa es la idea .
Podes hacer que envie el Nº en hexadecimal de los colores o Numerar los colores ,eso idealo vos ,pero la idea es que tenes que desglosar lo que llega por el Winsock ahi separar el color ,para asi poder asignarle al RichTextBox el color que te enviaron .
No se si quedo claro,saludos .-.

n3ts4mura1

-POLACO-

gracias lo probare cuidate xD

n3ts4mura1

que significa eso de (datos,5) y Left?

y otra cosa tengo un boton que le muestra los colores al cliente el showcolor()  entonces hay nose como hacerlo haber te muestro ese boton que es lo que tengo .

cdl.ShowColor
RichTextBox1.SelColor = cdl.Color

eso tengo pero esta mal para lo que yo quiero hacer =(.

n3ts4mura1

Si -Polaco- esta bien pero recuerda que al enviar esto:
Winsock1.SendData "Verde" + lo que quieras enviar

tambien envio la palbra Verde nose si me entiendes y no quiero enviar la palabra verde.

-POLACO-

Sollo te agarra el verde por que vos colcas esto

If Left(datos,5)=verde'esto verifica los 5 caracteres de la izquierda

If Left(datos,5)=rojo 'agarra los primeros cinco y como la palabra"rojo" tiene 4 caracteres ,te agarra la palabra rojo + el primer caracter siguiente ,por lo consiguiente NO es =rojo.
La funcion Left indica que debe contar desde la izquierda y el ",5" indica que solo leera 5 caracteres.
Lo ideal para tu caso seria crear un pequeño protocolo con los colores ejemplo:
01=rojo
02=verde
03=amarillo
asi todos tendran 2 digitos y los agarras a todos haciendo asi :

If Left(datos,2)=01

Otra manera es hacer Split pero veo que te vas a complicar la vida.
Lee TRATAMIENTO DE CADENAS ahi aprenderas todas las funciones.
Debes enviar o la palabra Verde o un protocolo o algo que indique el color asi el programa sabe  que color meter en el richtextbox ,pero si manejas las cadenas la palabra verde NO sale en el rich.

SendData "Verde" + lo que quieras enviar
If Left(datos,5)=verde'esto agarra solo "Verde"
Enviado=Mid(data,6)'agarra desde el caracter nº 6 hasta el final de la cadena,dejando de lado la palabra "Verde"

Espero te sea util .-.