Colorir linha selecionada do Grid

Delphi

23/05/2005

Estava tentando algo do gênero

  if TDBGrid(Sender).SelectedRows   :?:  :?:   then  
  begin
    TDBGrid(Sender).Canvas.Font.Color:= clWhite;
    TDBGrid(Sender).Canvas.Brush.Color := clNavy;
  end;


Pois preciso forçar a linha atual a ficar destacada...

Alguém para me ajudar?

Valew


Gustavo_pacheco

Gustavo_pacheco

Curtidas 0

Respostas

Marco Salles

Marco Salles

23/05/2005

Pois preciso forçar a linha atual a ficar destacada...


Mas , usar as propriedades Options do Grid não resolve :?: :?: :?:

Por exemplo:

No Objecto Inspector da Grid em Abra oPTIONS.. Sete a Propriedade 
DgRowSelectd Para True e a propriedade DgAlwShowSelected para True


[b:b8fac15fe8]o incoveniente desta sugestão , e que voce não consegue digitar na Grid e alem do mais a cor em destaque e o azul Padrão..
Mas quanto ao fato de nãopoder digitar , alguns codigos extras resolvem o Porblema[/b:b8fac15fe8]

Este é um ataque mais simples do problema , o outro acredito sera usando o evento onDBGrid1DrawDataCell

Exemplo:

implementation

var
i:Integer=1;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If (Table1.RecNo) = i then
begin
  DBGrid1.Canvas.Font.Color:= clWhite;
  DBGrid1.Canvas.Brush.Color:= clGreen;
end
else 
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.Brush.Color:= clWhite;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
end;

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
i:=Table1.RecNo;
end;


[b:b8fac15fe8]Pode ser que em alguns bancos , isto ainda não funcione , devido a Propriedade RecNo [/b:b8fac15fe8]



Fatal error: Maximum execution time of 30 seconds exceeded in D:\web\forum.devmedia.com.br\httpdocs\down_postsforum.php on line 70
GOSTEI 0
Gustavo_pacheco

Gustavo_pacheco

23/05/2005

Cara,

Deu certo, valew!!! :!: :!: :!:


GOSTEI 0
POSTAR