Mudar da fonte no DbGrid de acordo com valor

Delphi

16/06/2005

Ae galera, pesquisei no forum sobre o assunto encontrei algumas dicas mais comigo não funcionaram... eu quero o seguinte:
no meu sistema na parte de locações tenho, uma tabela chamada LOCACAO e outra chamada de DETLOCACAO
na DETLOCACAO tenho os campos: IdLocacao,Filme, Bonus e Diaria...
e o cara escolhe qual o filme grátis (´BONUS´) ele pinta a linha de azul, até ai blz, mais na tela de devolução uso as mesmas tabelas e quando vou tentar pintar a linha do filme que foi gratis (´BONUS´) não funciona, alguém sabe informar porque...?

quero apenas mudar a cor da fonte, e não a de preenchimento...! :?:


Paullsoftware

Paullsoftware

Curtidas 0

Melhor post

Steve_narancic

Steve_narancic

16/06/2005

Ve se Te ajuda em algo:

no [b:e292d9d263]OnDrawColumCell[/b:e292d9d263] da Grid coloque:

 
   if (Sender as TDBGrid).DataSource.DataSet.FieldByName(´VAZIO´).Value = ´SIM´   then
    begin
     (Sender as TDBGrid).Canvas.Font.Color := clBlue;
     (Sender as TDBGrid).Canvas.Font.Style:= [fsbold];
    end
   else
    begin
     (Sender as TDBGrid).Canvas.Font.Color := clBlack;
     (Sender as TDBGrid).Canvas.Font.Style:= [];
    end;
 
   (Sender as TDBGrid).Canvas.FillRect(Rect);
   (Sender as TDBGrid).DefaultDrawDataCell(Rect, (Sender as   TDBGrid).columns[datacol].field, State);



GOSTEI 1

Mais Respostas

Paullsoftware

Paullsoftware

16/06/2005

Ae galera, pesquisei no forum sobre o assunto encontrei algumas dicas mais comigo não funcionaram... eu quero o seguinte: no meu sistema na parte de locações tenho, uma tabela chamada LOCACAO e outra chamada de DETLOCACAO na DETLOCACAO tenho os campos: IdLocacao,Filme, Bonus e Diaria... e o cara escolhe qual o filme grátis (´BONUS´) ele pinta a linha de azul, até ai blz, mais na tela de devolução uso as mesmas tabelas e quando vou tentar pintar a linha do filme que foi gratis (´BONUS´) não funciona, alguém sabe informar porque...? quero apenas mudar a cor da fonte, e não a de preenchimento...! :?:


Melhorando a pergunta...
tenho uma tabela com três campos:
Vazio, Estoque e Sigla

Quando Vazio for SIM pinte a fonte de Azul
Quando Estoque for menor que 1 Vermelho
Quando Sigla for igual a CX Verde...

e ai??


GOSTEI 0
Paullsoftware

Paullsoftware

16/06/2005

valeu Steve...
eu consegui!!! :lol:

[b:14699096af]Pra mudar a cor da fonte;[/b:14699096af]
    if ( Detalhesbonus.AsBoolean ) then
    begin
      DBGrid1.Canvas.Font.Color:= clred;
      DBGrid1.Canvas.Font.Style := [fsBold];
      DBGrid1.Canvas.FillRect(Rect);
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

[b:14699096af]Pra mudar a cor da linha[/b:14699096af]
 
   if ( Detalhesbonus.AsBoolean ) then
    begin
      DBGrid1.Canvas.Brush.Color:= clred;
      DBGrid1.Canvas.Font.Style := [fsBold];
      DBGrid1.Canvas.FillRect(Rect);
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

[b:14699096af]Se quizer mudar apenas um campo individual...[/b:14699096af]
//if (Column.Field.FieldName = ´bonus´) then //Nome do título da coluna...Obs.: exatamente igual
//  begin
    if ( DM_BANCO.DETLOCACAObonus.AsBoolean ) then
    begin
      DBGrid2.Canvas.Font.Color:= clred;
      DBGrid2.Canvas.Font.Style := [fsBold];
      DBGrid2.Canvas.FillRect(Rect);
      DBGrid2.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
//  end;


Funciona certinho... :wink:


GOSTEI 0
POSTAR