PDA

Ver la Versión Completa : resaltar filas en dbgrid


dtomeysoto
25-03-2009, 15:55:05
Hola amigos, necesito una vez más de vuestra cooperación.
Quiero en un dbgrid resaltar en un color (rojo) algunas filas que van a cumplir una condición específica y las demás mostrarlas "normal" (es decir el texto negro y el fondo blanco)
Podría alguien ayudarme con esto?

Gracias.

Caro
25-03-2009, 16:05:07
Hola, debes utilizar el evento OnDrawColumnCell.


procedure TForm1.DBGridDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Query.FieldByName('campo').AsString='algo' then
begin
DBGrid.Canvas.Brush.Color := clRed;
DBGrid.Canvas.Font.Color := clWhite;

DBGrid.DefaultDrawColumnCell(rect,DataCol,Column,State);
end;


puedes buscar también el foro hay mucho sobre tu pregunta.

Saluditos

dtomeysoto
25-03-2009, 17:13:05
hola, gracias por responder. me fue de gan utilidad tu ayuda.

tengo que agregar que a la condición le incluí algo como:

if (not (gdSelected in State)) and (Query.FieldByName('campo').AsString='algo' then)

para que la fila seleccionada se muestre diferente a las demás. muchas gracias una vez más.