Page 1 of 1

GoToLine() en TrichEdit

Posted: Sun Dec 23, 2007 10:55 pm
by rolando
Buenas tardes,

Necesito que el cursor se posicione en una línea del texto que estoy editando con tRichEdit y no puedo lograrlo con la GoToLine().

por ej.

local nLine := 30

oRich:GoToLine(nLine)

Y no hace nada. Será que le falta un parámetro?

Gracias.

Rolando :D

Posted: Mon Dec 24, 2007 2:53 pm
by Antonio Linares
Rolando,

Comprueba que tengas este código en la Clase TRichEdit:

METHOD GoToLine( nLine ) INLINE ::SetPos( ::SendMsg( EM_LINEINDEX, nLine, 0 ) )

Posted: Mon Dec 24, 2007 3:35 pm
by rolando
Antonio,

Si, está el método tal cual lo preguntas.

¿Que puede estar pasando?.

Gracias.

Rolando. :D

Posted: Tue Dec 25, 2007 10:38 am
by Antonio Linares
Rolando,

Este cambio en samples\TestRich.prg funciona correctamente aqui:

REDEFINE BUTTON ID 998 ACTION ( oRich:GoToLine( 10 ), oRich:SetFocus() )

Posted: Wed Dec 26, 2007 9:05 pm
by rolando
Antonio,

Efectivamente el ejemplo que me envias funciona correctamente.

Lo que yo necesito hacer es cambiar a la línea deseada pero sin que el oRich esté en foco.

¿Para qué?. La respuesta es que agregué a la clase un método que llamé findall() y que cubre una necesidad para mi proyecto y es la de mostrar TODAS las palabras buscadas con tinta blanca y papel azul (como en el "find").

La cuestión es que antes de pintar todas las palabras hago una copia al disco del texto editado para, luego de mostrar todas las palabras encontradas, volver a cargarlo logrando así mostrar el texto original (sin las palabras pintadas). Esto lo hago cuando al clickear sobre el rich, coloco el cursor, es decir cuando toma al foco.

Por eso necesito, para mejor presentación, que sin tener el foco, el rich "salte", para poder visualizar, la primer línea en la que encontró la primer palabra buscada.

No se si me explico. ¿Hay algun modo de hacerlo?.

Gracias.

Rolando. :D