Ver Mensaje Individual
  #2  
Antiguo 21-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
  // dgRowSelect configurable desde el Object Inspector
  DBGrid1.Options:= DBGrid1.Options+[dgRowSelect];
  RowColor:= clMenuHighlight;
end;

(* Pintar la fila *)
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;

(* cambiar el color *)
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-03-2012 a las 22:34:50.
Responder Con Cita