Problema ao sobreescrever dbgrid

Delphi

23/11/2010

Eu uso em alguns dbgrids do meu sistema umas funções no DrawCloumnCell, para por exemplo mudar cor de fauras em atraso, quando eu cli sobre ele e como se o texto original aparecesse subescrito na linha selecionada, como eu evito isso?

vlw!!
Marcos Faneli

Marcos Faneli

Curtidas 0

Respostas

Pietro Braga

Pietro Braga

23/11/2010


  Hahaah, passei por isso já, se não tiver resolvido até a noite quando chegar em casa eu pego o meu fonte e posto aí pra ti.
Abs
GOSTEI 0
Wilson Junior

Wilson Junior

23/11/2010

Utilize o código abaixo:
procedure EventoOnDrawColumnCell;
begin
  DBGrid.Canvas.FillRect( Rect );

  DBGrid.Canvas.Font.Color  := clBlack;
  DBGrid.Canvas.Brush.Color := clWhite;

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


Espero ter colaborado.
GOSTEI 0
Pietro Braga

Pietro Braga

23/11/2010

procedure TF_Stock.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;  DataCol: Integer; Column: TColumn; State: TGridDrawState);with F_Dados.Q_Grid do  Begin    if (FieldByName('QTDE').Value <= FieldByName('QTDE_MIN').Value) then    DbGrid1.Canvas.Font.Color:= clRed;    DBGrid1.Canvas.FillRect(Rect);    DBGrid1.Canvas.TextOut(Rect.Left+3,Rect.Top+2,Column.Field.AsString);  End;  end;
Adapte isso a sua necessidade, a parte em vermelho é o código que colore o texto na DBGrid caso a minha condição seja verdadeira. Se ainda assim o texto paracer deslocado, ajuste os valores para left e top.
Abs
 
GOSTEI 0
POSTAR