Visual Basic - reemplazar <, > y " a otro color

Life is soft - evento anual de software empresarial
 
Vista:

reemplazar <, > y " a otro color

Publicado por joker (22 intervenciones) el 05/08/2005 20:32:11
Hola.. aver si a esta duda me la contesta alguien :P, es posible con el textbox o richtextbox reemplazar las letras <, > o " , con selcolor o alog de eso por otro color? como en visual basic, que el texto es todo negro pero cuando pones < o > sale en azul :P, eso me gustaria.. help!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:reemplazar <, > y

Publicado por Respondedor (10 intervenciones) el 06/08/2005 17:50:47
prueba con esto:

Private Sub RichTextBox1_KeyPress(KeyAscii As Integer)
Select Case Chr(KeyAscii)
Case "<", ">", """"
Me.RichTextBox1.SelStart = Len(Me.RichTextBox1.Text)
Me.RichTextBox1.SelColor = &HC0&
Case Else
Me.RichTextBox1.SelStart = Len(Me.RichTextBox1.Text)
Me.RichTextBox1.SelColor = &H0&
End Select
End Sub

Espero haberte sido de ayuda.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:reemplazar <, > y

Publicado por Joker (22 intervenciones) el 06/08/2005 23:39:40
Si tio, te quiero!!!!!!! :P gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:reemplazar <, > y

Publicado por Joker (22 intervenciones) el 06/08/2005 23:53:01
Hola, me ha servido mucho.. pero otro problemilla :P, cuando se pega un texto, o el texto que viene predeterminado, es decir, cuando hay un texto en el textbox, pero que no se pone al pulsar una tecla.. nop sale en color :P, eso es posible remediarlo? y lo mismo pero en un textbox, supongo ke no es posible no? :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:reemplazar <, > y

Publicado por Respondedor (10 intervenciones) el 07/08/2005 11:13:21
Antes de nada quiero decirte que en el codigo anterior hay un fallo (tuve un lapsus), es igual pero sin la linea de antes de la de poner el color. Seria asi:

Private Sub RichTextBox1_KeyPress(KeyAscii As Integer)
Select Case Chr(KeyAscii)
Case "<", ">", """"
Me.RichTextBox1.SelColor = &HC0&
Case Else
Me.RichTextBox1.SelColor = &H0&
End Select
End Sub

Y respecto a tu duda, eso es mas complicado, ya que lo que debes hacer es buscar tus caracteres dentro del texto, bien uno a uno y comparandolo con cada uno de tus caracteres, o bien mediante la funcion InStr (claro que tendrias que ejecutarla para cada uno de tus caracteres que quieras encontrar). Y esto cada vez que alguien peque un texto. Lo de pegar un texto creo que el control no tiene nada que te lo diga, pero si puedes comprobarlo mediante una variable a nivel de modulo o formulario, y utilizandola en el evento Change del control.

Por ejemplo. Al final de todo el evento Change pones vTextoManual = False, cuya variable es de tipo Boolean y te indica si el texto ha sido pegado o escrito manual. Y en el evento KeyDown pones vTextoManual = True, asi sabes que el texto lo han escrito manualmente. Y en el evento Change compruebas si el texto ha sido pegado, en caso afirmativo, empiezas a buscar tus caracteres. Yo creo que es la solucion mas practica, pero vamos, tampoco es que sea un lumbreras del Visual Basic. Asi que, si no te sirve, pues lo siento mucho.

Te pongo un ejemplo metodologico.

Dim vTextoManual As Boolean

Private Sub RichTextBox1_Change()
If vTextoManual = False Then
...
...
ComprobarCaracteresParaCambiarlesElColor
...
...
End If
vTextoManual = False
End Sub

Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
vTextoManual = True
End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar