PDA

Ver la Versión Completa : Como poner color a una palabra buscada


Alexander
11-09-2006, 18:49:07
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
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 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 (http://www.clubdelphi.com/foros/showthread.php?t=5455) 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
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
Haciendo pruebas helogrado hacer lo siguiente:

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


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