Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   buscar y resaltar palabras en un trxrichedit (https://www.clubdelphi.com/foros/showthread.php?t=14039)

Romanosky 08-09-2004 10:30:49

buscar y resaltar palabras en un trxrichedit
 
Hola, buenas!!

En la aplicación que estoy realizando crear el contenido de un trxrichedit de forma dinamica a partir de unos datos guardados en unos tstringlist. La cuestion es la siguiente:

- a medida que voy añadiendo linias del tstringlist al trxrichedit he de resaltar con otro color o con atributos una serie de palabras o datos, esto lo he conseguido mediante el findtext una vez he añadido las linias al componente. Es decir hago el findtext, selecciono la palabra y cambio atributos y colores

- El problema es que este siempre me localiza la posicion de la primera palabra que encuentra en el trxrichedit, que debo hacer para buscar las siguientes palabras si la que he de resaltar se repite mas de una vez en el texto?

gracias

Neftali [Germán.Estévez] 08-09-2004 11:13:55

Cita:

Empezado por Romanosky
El problema es que este siempre me localiza la posicion de la primera palabra que encuentra en el trxrichedit, que debo hacer para buscar las siguientes palabras si la que he de resaltar se repite mas de una vez en el texto?

Vuelve a utilizar FindText modificando la posición inicial de búsqueda, que es el segundo parámetro de la llamada.

Nuria 08-09-2004 11:23:14

Hola Romanosky!

Lo mismo hay otra manera más adecuada de hacerlo, pero yo no la he encontrado. Puedes hacer lo siguiente:
Código Delphi [-]
 longitud := Length(RxRichEdit.Text);
 posi := RxRichEdit.FindText(textoabuscar,1,longi,[stSetSelection]);
 while posi >= 0 do begin
     //
    // Haces lo que tengas que hacer
    //

    // Busca la siguiente palabra.
    posi := RxRichEdit.FindText(Textoabuscar,posi,longi,[stSetSelection]);
 end;

Espero que te sirva... Saludos! :)

Romanosky 08-09-2004 17:01:24

Gracias por vuestra colaboración,

deberia haberme dado cuenta antes de que tenia el parametro de inicio de la busqueda en el findtext, ya sabies No corras que tengo prisa.


La franja horaria es GMT +2. Ahora son las 13:11:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi