elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:28  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Ayuda con colores RichTextBox
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con colores RichTextBox  (Leído 5,344 veces)
raul338


Conectado Conectado

Mensajes: 2.373


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #15 en: 4 Septiembre 2009, 17:42 »

jajajaj no seas vago y usa un for each o algo para recorrer un bucle xD
mira, te escribo el codigo a la volada

Código
    Dim palabras as New HashTable()
Public Sub Form_Load(....)....
   palabras.add("@", Color.Red)
   palabras.add("echo", Color.Blue)
End Sub
 
'.....
 
Private Sub rtf_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtf.TextChanged
   For each s As String In palabras.Keys
       colorear(s, palabras(s))
   Next
End sub
 

no estoy seguro si funciona (dudo dentro del for each), pero bueno, lo acabo de inventar recien, fijate si te sirve


En línea

Braayhaan

Desconectado Desconectado

Mensajes: 224



Ver Perfil
Re: Ayuda con colores RichTextBox
« Respuesta #16 en: 4 Septiembre 2009, 18:09 »

mmm no me funka Raul, bueno de todas formas voy a seguir chequeando por mi cuenta creo que ya los moleste bastante :xD.


Posdata: Felicitaciones es tu mensaje 100!  :xD


En línea

Xtriker

Desconectado Desconectado

Mensajes: 65



Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #17 en: 4 Septiembre 2009, 18:25 »

Es curioso como se comporta el RichTextBox con el codigo que utilizé, por que al editar una parte intermedia del texto me selecciona hacia adelante algunos espacios, jeje, y a mi si me funciona en todas las lineas  :huh:  , realmente al leer el post por primera vez crei que seria mas simple, unas 4 lineas y ya, pero resulto interesante intentar, en fin, bueno aqui hay otra idea, aunque tambien tiene varios fallos

Código
Private ReservadasBlue As String() = _
   {"if", "then", "else"} 'En este arreglo pones todas las palabras que quieras que aparezcan en color Azul
 
   Private ReservadasRed As String() = _
   {"echo", "@"} 'En este arreglo pones todas las palabras que quieras que aparezcan en color Rojo
 
   Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
 
       ' aqui obtiene un arreglo de palabras desde el inicio
       ' hasta donde esta la posicion del cursor
       Dim Palabras As String() = RichTextBox1.Text.Substring(0, RichTextBox1.SelectionStart).Split()
 
       'Aqui obtenemos el ultimo elemento del arreglo de palabras
       Dim UltimaEscrita As String = Palabras(Palabras.Length - 1)
 
       'Guardamos la posicion del cursor
       Dim PosCursor As Integer = RichTextBox1.SelectionStart
 
       'Verificamos si la palabra escrita esta en el el arreglo
       'en este caso declare un arreglo para cada color
       If ReservadasBlue.Contains(UltimaEscrita) Then
           RichTextBox1.Find(UltimaEscrita, RichTextBoxFinds.Reverse)
           RichTextBox1.SelectionColor = Color.Blue
           RichTextBox1.SelectionStart = PosCursor
       End If
 
       'aqui para el color rojo, en caso de añadir mas pues solo seria
       'cosa de agregar mas arreglos y mas condicionales
       If ReservadasRed.Contains(UltimaEscrita) Then
           RichTextBox1.Find(UltimaEscrita, RichTextBoxFinds.Reverse)
           RichTextBox1.SelectionColor = Color.Red
           RichTextBox1.SelectionStart = PosCursor
       End If
 
       'regresamos al color original
       RichTextBox1.SelectionColor = Color.Black
   End Sub
 

El codigo de Raul funciona muy bien, note que parpadea la linea al escribir, y al escribir entre texto no colorea, pero al parecer no nos da los mismos resultados el codigo, sera por aquello de los framework? bueno quien sabe.
En línea

Braayhaan

Desconectado Desconectado

Mensajes: 224



Ver Perfil
Re: Ayuda con colores RichTextBox
« Respuesta #18 en: 4 Septiembre 2009, 18:45 »

LISTOO sin mas problemas Xtriker ya funciona correctamente, gracias a todos por sus respuestas!!!

Saludos, a ambos los pondre en los Creditos  ;)
En línea

raul338


Conectado Conectado

Mensajes: 2.373


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #19 en: 4 Septiembre 2009, 18:49 »

Citar
Posdata: Felicitaciones es tu mensaje 100!

jajaja xD...sigamos x los mil!!! xD


Es curioso como se comporta el RichTextBox con el codigo que utilizé, por que al editar una parte intermedia del texto me selecciona hacia adelante algunos espacios, jeje, y a mi si me funciona en todas las lineas  :huh:  , realmente al leer el post por primera vez crei que seria mas simple, unas 4 lineas y ya, pero resulto interesante intentar, en fin, bueno aqui hay otra idea, aunque tambien tiene varios fallos

-------------------------------

El codigo de Raul funciona muy bien, note que parpadea la linea al escribir, y al escribir entre texto no colorea, pero al parecer no nos da los mismos resultados el codigo, sera por aquello de los framework? bueno quien sabe.


no he probado el codigo todavia, aunque ahora no tengo tiempo ,a al tarde volvere  ;D

es verdad, parpadea, pero es por la forma que estamos utilzando (jamas pense q habia que seleccionar para colorear). Aunque la mejor forma (y mas dificil  ;D) de hacerlo es haciendo un control nuevo (tal vez que herede de richtextbox) y dibujar linea por linea con colores y todo ( sobrecargando el metodo OnPaint ). Pero como dije, es la forma mas dificil de hacer: dibujar lineas, dibujar el cursor, las barras de desplazamiento, un lio... xD



Edit: Funciona, aunque no he probado romperlo todavia :laugh: :xD

igual de todas formas, si dices que tiene errores, habra que perfeccionarlos y tal vez hacer una mezcla de codigo entre los 2 jejeje ...


bueno.....suerte entonces...  ;)
« Última modificación: 4 Septiembre 2009, 18:58 por raul338 » En línea

raul338


Conectado Conectado

Mensajes: 2.373


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #20 en: 4 Septiembre 2009, 22:34 »

jajajaj no seas vago y usa un for each o algo para recorrer un bucle xD
mira, te escribo el codigo a la volada

Código
    Dim palabras as New HashTable()
Public Sub Form_Load(....)....
   palabras.add("@", Color.Red)
   palabras.add("echo", Color.Blue)
End Sub
 
'.....
 
Private Sub rtf_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtf.TextChanged
   For each s As String In palabras.Keys
       colorear(s, palabras(s))
   Next
End sub
 

no estoy seguro si funciona (dudo dentro del for each), pero bueno, lo acabo de inventar recien, fijate si te sirve


Ahora (que no me acuerdo porque no lo escribi  :huh:) estaria bueno hacer una especie de IDE simple para varios lenguajes, ej, cuantas veces hemos abierto el tremendo pero algo lento visual studio para probar unas simples lineas. Con "nuestro" pequeño IDE se podria hacer simple jejeje....x eso implemente la opcion de cualquier color. Es buena idea, alguien se prende??? (se une?)
En línea

Braayhaan

Desconectado Desconectado

Mensajes: 224



Ver Perfil
Re: Ayuda con colores RichTextBox
« Respuesta #21 en: 4 Septiembre 2009, 22:40 »

Yo me apunto! al diseño y parte del codigo  :P
« Última modificación: 4 Septiembre 2009, 22:42 por BlazeFire » En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #22 en: 5 Septiembre 2009, 02:41 »

jajajaj no seas vago y usa un for each o algo para recorrer un bucle xD
mira, te escribo el codigo a la volada

Código
    Dim palabras as New HashTable()
Public Sub Form_Load(....)....
   palabras.add("@", Color.Red)
   palabras.add("echo", Color.Blue)
End Sub
 
'.....
 
Private Sub rtf_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtf.TextChanged
   For each s As String In palabras.Keys
       colorear(s, palabras(s))
   Next
End sub
 

no estoy seguro si funciona (dudo dentro del for each), pero bueno, lo acabo de inventar recien, fijate si te sirve


Ahora (que no me acuerdo porque no lo escribi  :huh:) estaria bueno hacer una especie de IDE simple para varios lenguajes, ej, cuantas veces hemos abierto el tremendo pero algo lento visual studio para probar unas simples lineas. Con "nuestro" pequeño IDE se podria hacer simple jejeje....x eso implemente la opcion de cualquier color. Es buena idea, alguien se prende??? (se une?)

queres hacer un parser de los colores de cada lenguaje, hay un monton de ejemplos en internet de ese tipo de proyecto.
En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
raul338


Conectado Conectado

Mensajes: 2.373


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con colores RichTextBox
« Respuesta #23 en: 5 Septiembre 2009, 17:23 »

jajajaj no seas vago y usa un for each o algo para recorrer un bucle xD
mira, te escribo el codigo a la volada

Código
    Dim palabras as New HashTable()
Public Sub Form_Load(....)....
   palabras.add("@", Color.Red)
   palabras.add("echo", Color.Blue)
End Sub
 
'.....
 
Private Sub rtf_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtf.TextChanged
   For each s As String In palabras.Keys
       colorear(s, palabras(s))
   Next
End sub
 

no estoy seguro si funciona (dudo dentro del for each), pero bueno, lo acabo de inventar recien, fijate si te sirve


Ahora (que no me acuerdo porque no lo escribi  :huh:) estaria bueno hacer una especie de IDE simple para varios lenguajes, ej, cuantas veces hemos abierto el tremendo pero algo lento visual studio para probar unas simples lineas. Con "nuestro" pequeño IDE se podria hacer simple jejeje....x eso implemente la opcion de cualquier color. Es buena idea, alguien se prende??? (se une?)

queres hacer un parser de los colores de cada lenguaje, hay un monton de ejemplos en internet de ese tipo de proyecto.

puede ser, pero un coloreador de lenguajes no puede ser considerado IDE,  aparte de colorear se podria hacer una "simulacion" (copia xD) de Intellisense y compilar el codigo (solo en .net, ya que en otros lenguajes necesitamos un compilador jejej)
En línea

jgzunigah

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda con colores RichTextBox
« Respuesta #24 en: 25 Febrero 2010, 06:02 »

hola vieras que estoy con un problema muy similar pero resulta que si le doy un enter la palabra que quiero que cambie de color no cambia alguien me podria decir como se puede resolver esto


En línea
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Obtener text de un RichTextBox
Programación Visual Basic
sebah97 2 951 Último mensaje 19 Diciembre 2010, 19:56
por BlackZeroX (Astaroth)
Colores en RichTextBox [Solucionado] « 1 2 »
Programación Visual Basic
Stelio Kontos 17 1,894 Último mensaje 23 Marzo 2011, 15:11
por Stelio Kontos
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines