Tema destacado: Únete al Grupo Steam elhacker.NET
Autor
|
Tema: Colores en RichTextBox [Solucionado] (Leído 1,895 veces)
|
Stelio Kontos
Desconectado
Mensajes: 17
|
Buenas, estoy haciendo una aplicación en la que quiero que después de un nombre, tenga una parte coloreada tal que así: Pepe dice: HolaPepa dice: HolaLo separo en dos vectores, uno para el nombre y uno para el mensaje. El que quiero ver coloreado es el del mensaje. Hago ésto pero solo se colorea la primera vez, y segun recibe mensajes los colores se cambian de sitio: Pepe dice: HolaPepa dice: Hola If Mid(datos, 1, 3) = "MSG" Then 'Cuando recibo es MSGmensaje mensaje = Split(Mid(datos, 4, Len(datos)), ":") Text1.Text = Text1.Text & mensaje(0) & ":" & mensaje(1) & vbNewLine 'nombre dice: mensaje
lennombre = Len(mensaje(0)) 'tamano del nombre lenmensaje = Len(mensaje(1)) 'tamano del mensaje
With Text1 'creo que falla aqui .SelStart = lennombre 'selecciono desde donde acaba el nombre .SelLength = lenmensaje 'hasta que acaba el mensaje .SelColor = vbBlue 'se supone que tiene que colorearlo todas las veces que quiera .SelBold = True End With End If ¿Sugerencias? Saludos.
|
|
|
|
« Última modificación: 23 Marzo 2011, 15:12 por Stelio Kontos »
|
En línea
|
|
|
|
|
raul338
|
SelStart lo estas asignando mal, debes poner el lugar donde empieza, esto es: Tamaño del texto Actual en el ritchtextbox + Variable nombre + "dice: " Por lo demas, esta bien 
|
|
|
|
|
En línea
|
|
|
|
Stelio Kontos
Desconectado
Mensajes: 17
|
Gracias por la respuesta. El "dice: " viene en el vector(0). El servidor envia Nombre dice: Hola, cuando el cliente lo recibe hace un split separado por ":", entonces, para que se vea hago mensaje(0) & ":" & mensaje(1), de forma que sale Nombre dice: Hola. He probado como me has dicho y no sale ningún color.
|
|
|
|
|
En línea
|
|
|
|
|
raul338
|
Porque no me explique del todo  , en instrucciones seria Agrega el texto principal "X dice:" Despues tienes que guardar en una variable el Len(Text1.Text) Despues agregas el mensaje en si Y por ultimo, coloreas, en SelStart pones la variable anterior (el len) y listo 
|
|
|
|
|
En línea
|
|
|
|
Stelio Kontos
Desconectado
Mensajes: 17
|
Vale, creo que he hecho lo que me has dicho, y ahora sale coloreado siempre el ultimo mensaje, es decir, digo Hola y se ve azul, pero vuelvo a decir Hola, el anterior se pone negro y el nuevo azul. mensaje = Split(Mid(datos, 4, Len(datos)), ":") Text1.Text = Text1.Text & mensaje(0) & ":" 'Agrego el texto principal X dice:"
lentext = Len(Text1.Text) 'Guardo en una variable el len(text1) Text1.Text = Text1.Text & mensaje(1) & vbNewLine 'Agrego el mensaje en si Text1.SelStart = lentext 'Pongo en el SelStart la variable anterior Text1.SelLength = Len(Text1.Text) ' mal aqui? Text1.SelColor = vbBlue Text1.SelBold = True
|
|
|
|
|
En línea
|
|
|
|
|
raul338
|
Es raro eso que dices  aunque yo cambiaria esta linea que dices Text1.SelLength = Len(Text1.Text) ' mal aqui? por Text1.SelLength = Len(mesnaje(1))
|
|
|
|
|
En línea
|
|
|
|
Stelio Kontos
Desconectado
Mensajes: 17
|
También he probado y nada  Sale así:  Siempre se colorea el ultimo mensaje.
|
|
|
|
« Última modificación: 18 Marzo 2011, 23:40 por Stelio Kontos »
|
En línea
|
|
|
|
|
raul338
|
Cierto! me habia olvidado, cada vez que seteas la propiedad "Text" todo lo formateado se borra  Fijate si tiene una funcion llamada "AppendText" o similar  sino, no hay ocacion, vas a tener que colorear siempre 
|
|
|
|
|
En línea
|
|
|
|
Stelio Kontos
Desconectado
Mensajes: 17
|
Qué va, no hay nada de eso. ¿Cómo coloreo todo?
|
|
|
|
|
En línea
|
|
|
|
|
raul338
|
Y... Fijate si tenes alguna otra propiedad relacionada con Text, tipo RichtText o algo asi u.u
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|
|
raul338
|
y si el mensaje contiene ":" descuadra todo 
|
|
|
|
|
En línea
|
|
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Puedes explicar de nuevo o dejar todo todo tu codigo? no entiendo q quieres hacer
|
|
|
|
|
En línea
|
|
|
|
|
|