Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - NemeSys

#11
Hola otra vez...

Nadie puede ayudarme con esto por favor, lo necesito.

Gracias.
#12
Hola...va a ser que no era esa la respuesta....

He probado de alojar el texto el el Clipboard para ver si mantenia su aspecto y luego insertarlo junto la linea a añadir... pero ni asi... me sale todo el texto en un color...
If Not (RsPeliculas.EOF = True And RsPeliculas.BOF = True) Then
    RsPeliculas.MoveFirst
    RichTextBox1.SelStart = 0
    Do While Not RsPeliculas.EOF
        If TestPath(RsPeliculas!Link) = False Then
            RsPeliculas!Actualizado = False
            Clipboard.Clear 'empty Clipboard
            Clipboard.SetText RichTextBox1.Text
            RichTextBox1.Text = Clipboard.GetText & "Link Roto: " & RsPeliculas!Link & vbCrLf
            RichTextBox1.SelStart = Len(RichTextBox1.Text) - Len("Link Roto: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelLength = Len("Link Roto: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelColor = RGB(150, 0, 20)
            NumeroLinksRotos = NumeroLinksRotos + 1
            RsPeliculas.Update
           
        Else
            RsPeliculas!Actualizado = True
            Clipboard.Clear 'empty Clipboard
            Clipboard.SetText RichTextBox1.Text
            RichTextBox1.Text = Clipboard.GetText & "Link Actualizado: " & RsPeliculas!Link & vbCrLf
            RichTextBox1.SelStart = Len(RichTextBox1.Text) - Len("Link Actualizado: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelLength = Len("Link Actualizado: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelColor = RGB(150, 0, 20)
            NumeroLinksActualizados = NumeroLinksActualizados + 1
            RsPeliculas.Update
        End If
        NumeroTotalPeliculas = NumeroTotalPeliculas + 1
        RsPeliculas.MoveNext
        ProgressBar1.Value = ProgressBar1.Value + 1
    Loop
End If


Con esto sale todo el texto de un color...

Y con esto tambien...

If Not (RsPeliculas.EOF = True And RsPeliculas.BOF = True) Then
    RsPeliculas.MoveFirst
    RichTextBox1.SelStart = 0
    Do While Not RsPeliculas.EOF
        If TestPath(RsPeliculas!Link) = False Then
            RsPeliculas!Actualizado = False
            RichTextBox1.Text = RichTextBox1.Text & "Link Roto: " & RsPeliculas!Link & vbCrLf
            RichTextBox1.SelStart = Len(RichTextBox1.Text) - Len("Link Roto: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelLength = Len("Link Roto: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelColor = RGB(150, 0, 20)
            NumeroLinksRotos = NumeroLinksRotos + 1
            RsPeliculas.Update
           
        Else
            RsPeliculas!Actualizado = True
            RichTextBox1.Text = RichTextBox1.Text & "Link Actualizado: " & RsPeliculas!Link & vbCrLf
            RichTextBox1.SelStart = Len(RichTextBox1.Text) - Len("Link Actualizado: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelLength = Len("Link Actualizado: " & RsPeliculas!Link & vbCrLf)
            RichTextBox1.SelColor = RGB(150, 0, 20)
            NumeroLinksActualizados = NumeroLinksActualizados + 1
            RsPeliculas.Update
        End If
        NumeroTotalPeliculas = NumeroTotalPeliculas + 1
        RsPeliculas.MoveNext
        ProgressBar1.Value = ProgressBar1.Value + 1
    Loop
End If


No se que hacer ya... lo maximo que he conseguido es que una vez escrito el texto del report en la RTB, pasar un filto buscando las palabras a colorear...pero el efecto es un poco cutre...

Asi queno se que hacer mas...estoy desesperao... Alguien sabe con que control hacen un chat que contiene muchos colorines y no se pierde el formato de color?
:(

Ayuda po favó...
#13
Gracias por la respuesta tan completa.

Leyendola he visto mi error. Verás, Al introducir texto lo hago de forma automatica (es decir desde un bucle) donde voy metiendo texto nuevo a medida que se generan unos eventos. Si el evento acabó ok la linea nueva debe ir en verde si acabó nook debe ir en rojo).

Para ello uso algo asi:
haz mientras Registros.existe = true
      RTB.SelStart = Len(RTB.text)
      if proceso = ok then
         RTB.SelColor = vbGreen
         RTB.Text = RTB.Text & "Accion OK"
     else
         RTB.SelColor = VbRed
         RTB.Text = RTB.Text & "Accion NOOK"
     end if

Per Debug observaba que al insertar el nuevo texto este se introducia todo del mismo color y es porque cada linea que inserto nueva, para conservar el contenido anterior vuelvo a insertarlo todo, de manera que todo el bloque de texto (Texto existente + Nueva Linea) se meten del color seleccionado.

Para solucionar esto debo encontrar la forma de conservar el texto de la RTB y formatear solo el texto introducido. Asi que a seguir estrujandose la cabeza...

Si alguien tiene mas sugerencias... se aceptan... y gracias por las ya dadas  :)
#14
Gracias por la respuesta,

Pero ya lo probé y no funciona. En teoria deberia escribir el texto nuevo del color elegido desde el punto de insercion (Len(Richtextbox1.text) pero lo que hace es en el paso de insertar el texto colorea todo el texto del ultimo color seleccionado. Asi pierdo el formato anterior.

Es curioso porque si me funciona cuando formateo el tipo de letra manteniendo los formatos (negrita y cursiva) allá donde los inserté. Pero el texto en cambio no. Cuando se inserta texto nuevo cambia todo el contenido de la RTB al color ultimo usado.

Probé muchas combinaciones y algoritmos que busqué por internet y ninguno me funciona. No sé si es algun bug de la RTB o algo que hago mal.

Si alguien tiene mas sugerencias...bienvenidas son.

Saludos.
#15
Hola a tod@s!

Estoy haciendo una aplicacion que debe sacar un report a medida que van saliedo resultados de unos procesos en segundo plano.

Pa ello uso un richtextbox donde voy incluyendo a medida que se crean las lineas del informe.

Mi idea era ir escribiendo las diferentes notificaciones en diversos colores. Es decir El error que aparezca la linea en  rojo, las notificaciones en azul, etc.

Pues bien para ello usé el siguiente algoritmo:

do while not RsRecordset.EOF
     RichTextBox1.Text = Richtextbox1.text & RsRecordset!Link
     RichTextBox1.SelStart = Richtextbox1.text - len(RsRecordset!Link)
     RichTextBox1.SelLength = len(RsRecordset!Link)
     if RsRecordset!Status = "Error" then
          RichTextBox1.SelColor = vbred
     elseif RsRecordset!Status = "Info" then
          RichTextBox1.SelColor = vbBlue
     else
          RichTextBox1.SelColor = vbBlack
     end if
     RichTextBox1.SelStart = 0
loop


El problema (lo vi por debugger) que al insertar texto nuevo en la RTB, se pone del ultimo color seleccionado. Es decir lo que antes estaba de color rojo, si la linea siguiente debe ser verde, al insertar el texto se pone todo lo anterior de color rojo.

He buscado por google y lo que encuentro son rutinas que buscan el texto deseado y lo colorean una vez todo el texto a sido escrito. Mi idea era ir coloreando el texto deseado a medida que se escribe.

La solucion que aplico ahora es filtrar el texto una vez escrito y coloreo aquellas palabras clave con su color correspondiente pero el efecto cuando hay mucho texto en la RTB es bastante feo.

Alguien podria ayudarme?

Gracias.


#16
Puede que el problema lo tengas porque no vacias el buffer del Winsock, algo parecido a lo que pasa en c si usas el teclado sin hacer flush despues:
Prueba esto...

Sub LimpiarBuffer(Winshock as MSComm )

Dim Voided as string
Do While Winshockl.InBufferCount > 0
     Voided = Winshock.Input
DoEvents
Loop

Esto vacia el winsock, es decir perderas lo que haya almacenado, asi que en lugar de machacarlo con una variable deberas enviarlo a cada pasada del bucle...

Saludos.

End Sub
#17
Mira este es uno de los mensajes que digo.

Ayuda Urgente!!. Mi monitor se ve oscuro y casi no puedo leer ni trabajar  SaintGermain  4  21   Hoy a las 13:12:17
por NemeSys 

Ahora hace un rato que me acabo de conectar, a las 13 no estaba en el foro. Y este mensaje lo contesté hace bastante.

Tengo la franja horaria correcta.

@~
#18
No si la hora, me aparece bien.

Lo que pasa es que parece que los post se mueven. He escrito posts que no se ven desde el foro, pero si aparecen en las busquedas. Luego voy a ver si estan donde dice la busqueda que esta y no encuentro nada. Hay post también que he contestado, que luego aparecen sin respuesta.

A medida que me pasen estas cosas te ire informando con mas detalle.

@~
#19
    Ayuda Urgente!!. Mi monitor se ve oscuro y casi no puedo leer ni trabajar  SaintGermain  4  21   Hoy a las 13:12:17
por NemeSys 

O este lo contesté ayer o anteayer..... En la zona de windows
#20
Desde hace un par de dias veo que en el foro aparecen preguntas de hace dias en primera posicion como si acabasen de colgarlo
por ejemplo
el post Bootear con DOS y W2k o WXP.. Cosas de locos no?
en el apartado de windows me aparece como escrito hoy
Hoy a las 14:36:37
por morp

Cuando yo mismo he contestado en este post hace un dia y ademas las respuestas no aprecen

Mi estado pasa de visitante a usuario segun le da

y los mensajes van desapareciendo (y no digo que los muevan) de la categoria pero si haces una busqueda aparecen en la categoria que pertenecen como si hubiesen estado ahi de toda la vida.

Esto me pasa desde mi casa y el trabajo.

@~