Fórum Como trocar a cor da linha que está sendo editada no dbgrid? #264551
07/01/2005
0
Sei que existem milhares de tópicos sobre cores e fontes no dbgrid, mas me deparei com uma situação que não consegui solucionar.
Como poderia estar fazendo pra deixar uma linha inteira que está sendo editada com outra cor ou outra fonte, e não apenas a célula na qual está o foco? Não posso usar o gdselected e nem o gdfocused, e tb não posso estabelecer nenhuma condição porque no DrawColumnCell eu não sei qual célula está com o foco, se a 5º coluna está com o foco, não consigo aplicar a mudança de cor na 1º coluna.... gostaria de deixar a linha inteira modifica, com RowSelect selecionado como verdadeiro funciona, mas desabilita a edição...
Alguém poderia me ajudar? :D
Como poderia estar fazendo pra deixar uma linha inteira que está sendo editada com outra cor ou outra fonte, e não apenas a célula na qual está o foco? Não posso usar o gdselected e nem o gdfocused, e tb não posso estabelecer nenhuma condição porque no DrawColumnCell eu não sei qual célula está com o foco, se a 5º coluna está com o foco, não consigo aplicar a mudança de cor na 1º coluna.... gostaria de deixar a linha inteira modifica, com RowSelect selecionado como verdadeiro funciona, mas desabilita a edição...
Alguém poderia me ajudar? :D
Renanfog
Curtir tópico
+ 0
Responder
Posts
07/01/2005
Qmd
oia:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ClientDataSet1.State in [dsEdit, dsInsert] then
begin
if Rect.Top = TStringGrid(dbgrid1).CellRect(0,TStringGrid(dbgrid1).Row).Top then
begin
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Brush.Color := clblue;
DBGrid1.Canvas.Font.Color := clYellow;
DBGrid1.DefaultDrawDataCell(Rect,Column.Field, State);
end
end;
end;
Falow
QmD
qmd@usercontrol.com.br
http://www.usercontrol.com.br
icq: 15630894
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ClientDataSet1.State in [dsEdit, dsInsert] then
begin
if Rect.Top = TStringGrid(dbgrid1).CellRect(0,TStringGrid(dbgrid1).Row).Top then
begin
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Brush.Color := clblue;
DBGrid1.Canvas.Font.Color := clYellow;
DBGrid1.DefaultDrawDataCell(Rect,Column.Field, State);
end
end;
end;
Falow
QmD
qmd@usercontrol.com.br
http://www.usercontrol.com.br
icq: 15630894
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)