Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Brian1511 en 10 Febrero 2015, 20:30 pm



Título: [Ayuda] Cambiar Color De Palabra En RichTextBox Y Que Se Envie Por Winsock
Publicado por: Brian1511 en 10 Febrero 2015, 20:30 pm
Hola a todos bueno mi duda es muy simple, lo que quiero hacer es que se cambie el color del usuario que envio el mensaje al servidor, el servidor busca que rango es este, cada rango tiene un color, pero no se como hacer que solo se cambie el user y no todo el texto y que de paso me lo envie por winsock ya que recibo el codigo RTF  del RichTextBox


Título: Re: [Ayuda] Cambiar Color De Palabra En RichTextBox Y Que Se Envie Por Winsock
Publicado por: MCKSys Argentina en 10 Febrero 2015, 20:41 pm
Te refieres a cambiar el color del user usando el control RTF de VB o editar el codigo RTF para cambiar el color del user?



Título: Re: [Ayuda] Cambiar Color De Palabra En RichTextBox Y Que Se Envie Por Winsock
Publicado por: Brian1511 en 10 Febrero 2015, 20:50 pm
Lo que quiero es que al servidor recibir los datos, si el usuario que envio el mensaje es digamos de rango 1 pues el color de su user sera de color Gris pero si es 2 seria de color rojo y haci sucesivamente, entonces quiero que el servidor envie a todos los chats el color del usuario mas su mensaje, ejemplo:

brian1511 : Este es mi mensaje!!

Gracias por responder tan rapido ;)


Título: Re: [Ayuda] Cambiar Color De Palabra En RichTextBox Y Que Se Envie Por Winsock
Publicado por: MCKSys Argentina en 10 Febrero 2015, 21:03 pm
Entiendo lo que quieres, pero no me queda claro cómo lo quieres hacer.

De todas formas, para hacerlo sencillo, podrías generar el código RTF sólo para el texto que envías.
Siguiendo tu ejemplo, el color del texto es negro y el del usuario seria rojo (ojo, texto rojo, no backcolor).
El codigo RTF seria:

Código:
{\rtf1\ansi{\colortbl;\red0\green0\blue0;\red255\green0\blue0;}
\cf1 brian1511\cf0 : Este es mi mensaje!!\par
}

En RTF primero defines los colores que se usarán en el texto con una tabla. Fíjate que definí 2 colores: negro y rojo (RGB: 0x000000 y 0xFF0000).
Luego, en el texto, antepones \cfX, donde X es el índice del color a usar para pintar el texto. En el ejemplo \cf1 dice que lo que sigue se pintará usando el color 1 de la tabla de colores. Con \cf0 se sigue pintando usando el color en el indice 0.

Como dato extra, para resaltar (backcolor) debes usar lo mismo, pero con el keyword "\highlight". Entonces, \highlight0 resaltaría con fondo negro, \highlight1 con rojo, y así sucesivamente.

Espero sea lo que quieres.

Saludos!


Título: Re: [Ayuda] Cambiar Color De Palabra En RichTextBox Y Que Se Envie Por Winsock
Publicado por: Brian1511 en 10 Febrero 2015, 22:14 pm
Bueno eso es lo que se me envia a los 2 chats el del Servidor y al del Cliente un codigo parecido a ese!,

Este es el codigo que ise para hacer lo de los colores pero no me funciona:

[spoiler]
Código
  1. Public Sub Global_Chat(Level As String, User As String, Msg As String)
  2. Dim Color As Long
  3. Dim Text As String
  4.  
  5. Select Case Level
  6.  
  7. Case "0":
  8. Color = RGB(0, 0, 0)
  9. Case "1":
  10. Color = RGB(128, 128, 128)
  11. Case "2":
  12. Color = RGB(30, 144, 255)
  13. Case "3":
  14. Color = RGB(255, 69, 0)
  15. Case "4":
  16. Color = RGB(0, 128, 0)
  17. Case "5":
  18. Color = RGB(255, 255, 0)
  19. End Select
  20.  
  21. frmServer.txtRTF.Text = User & " : " & Msg
  22.  
  23. With frmServer.txtRTF
  24.    'Selecciona todo
  25.    .SelStart = .Find(User)
  26.    .SelLength = Len(User)
  27.    .SelColor = Color
  28.    .Font.Bold = True
  29. End With
  30.  
  31. frmServer.txtChat.TextRTF = frmServer.txtChat.TextRTF & frmServer.txtRTF.TextRTF & vbNewLine
  32.  
  33. For i% = 1 To frmServer.Winsock1().UBound
  34.        Select Case frmServer.Winsock1(i%).State
  35.            Case Is = sckConnected
  36.                frmServer.Winsock1(i%).SendData "GCHAT||" & frmServer.txtChat.TextRTF
  37.                DoEvents%
  38.            Case Else
  39.        End Select
  40.    Next i%
  41.  
  42. End Sub
  43.  
[/spoiler]

Y lo que resivo es un codigo del color que se supone que deberia de ir solo el user y el mensaje :(