Hola Facu.
Si no te entiendo mal, basta con que pongas la propiedad
dgRowSelect en
True para lograr que la fila actual esté en color diferente.
Te pongo un ejemplo sencillo que te permitirá cambiar el color de la selección. Agrega un
TColorDialog y un
TButton para llamar a la elección del color.
Código Delphi
[-]
var
RowColor: TColor;
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.Options:= DBGrid1.Options+[dgRowSelect];
RowColor:= clMenuHighlight;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State then
begin
DBGrid1.Canvas.Brush.Color:= RowColor;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
RowColor:= ColorDialog1.Color;
DBGrid1.Invalidate;
end;
end;
Saludos.
Edito: Aunque creo que arriba está mencionado, para evitar confusiones: Sólo con poner la propiedad
dgRowSelected en
True se pintará la fila seleccionada, el resto es para ejemplificar el cambio de color.