Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como poner color a una palabra buscada (https://www.clubdelphi.com/foros/showthread.php?t=35450)

Alexander 11-09-2006 18:49:07

Como poner color a una palabra buscada
 
Hola a todos.

Trabajo con los componentes de DevExpress ver 5.0. cxGrid.
Hago una consulta que me busca una palabra en la base de datos, me da y me muestra el resultado perfectamente.

Como puedo hacer para poner de otro color la palabra que se buscó?.

Que cuando aparezca el resultado, se pueda ver la palabra resaltada o de otro color o con background diferente.

Muchas gracias por sus comentarios

Alexander.

Caral 11-09-2006 19:08:49

Hola
En donde te presenta la palabra buscada?
En un Edit, Label, Grid, Memo?
Hay diferentes formas de dar color a estos componentes, pero la mayoria tienen la obcion del color en el ispector de objetos en Font.
Espero sea esto lo que preguntaste.
Saludos

Alexander 11-09-2006 19:52:54

No se si te entendí
 
La búsqueda me la da en la grilla cxGrid.

Actualmente la respuesta me la da en un campo memo.

Puede mostrarme en la grilla muchas coincidencias de la palabra buscada desde 1 registro hasta x.

Es algo como por ejemplo, busco la palabra "Contrato"

y me muestra Ubicación, Titulo, y Resumen.

Ubicación Titulo Resumen
12x6 Contrato 1234 de 2.005 Especificaciones del contrato suscrito por ...

Que la palabra puede estar en el titulo y/o en el resumen, pero en alguno de los dos está.

Espero sirva de ayuda.

Alexander.

Caral 11-09-2006 21:00:36

Hola
No me hagas mucho caso, pero yo haria que la consulta me la devolviera en cierta condicion con un If x= XX then grid1.columns.Color.clRed
O algo asi, creo que si la consulta va condicionada de una vez al color deveria funcionar, no se pruebalo.
saludos

Alexander 11-09-2006 23:08:32

No es asi
 
No quiero pintar la columna, quiero pintar solamente la palabra.

Ejemplo:

Dato a buscar: 2534

Respuesta:

Registro 027 de contrato 2534 donde se resuleve ...

Gracias por sus comentarios

Alexander

Bicho 12-09-2006 00:07:25

Hola, no se si yo al final me he aclarado con lo que buscabas, pero lo que entendí es que el resultado que te lanza la búsqueda lo hace sobre un dbgrid y tú quieres resalta el texto de una columna en concreto, no es así?
Si es así prueba a revisar este hilo. Básicamente se trata de jugar con el canvas del dbgrid en el evento ondrawcell y alí modificar el color de la fuente de la columna que deseas.

Espero te sirva,

Saludos

Alexander 12-09-2006 00:58:21

Esa no es
 
Bicho gracias. Más sin embargo no es lo que busco. Allí pintan la celda especifica.

Yo necesito pintar de otro color, solo una palabra del texto completo.

Gracias

Alexander

Alexander 12-09-2006 02:22:43

He logrado esto
 
Haciendo pruebas helogrado hacer lo siguiente:

Paso el texto a un RichEdit y en este si se puede resaltar la palabra, así:

Código Delphi [-]
  procedure ResaltaPalabraEnRE(RichEdit:TRichEdit;Palabra:string);
     var
       Texto    : string;
       Posicion : integer;
     begin
       texto := RichEdit.Lines.Text;
       repeat
         Posicion:=ansipos(palabra,texto);
         Richedit.SelStart:=Posicion-1;
         Richedit.SelLength:=Length(Palabra);
         Richedit.SelAttributes.Color:=clred;
         texto[Posicion+1]:=Chr(255);
         Posicion:=ansipos(palabra,texto);
       until (Posicion=0);
     end;

Como podré hacer esto mismo pero con un DBRichEdit o con DBGrid.

Gracias

Alexander


La franja horaria es GMT +2. Ahora son las 17:53:36.

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