DBGrid mudar a cor da fonte qdo abrir o form

Delphi

03/05/2004

Tenho uma tabela vinculada a q estou apresentando no dbgrid, e eu queria tipo trocar a cor da fonte na linha qdo a tabela vinculada com aquele código for <> 0, tentei fazer o seguinte:
if TbItensDesp.RecordCount <> 0 then //tabela vinculada com a tb
//q apresendo no dbgrid
DBG_Funciona.Canvas.Font.Color := clRed;
DBG_Funciona.DefaultDrawDataCell(Rect,Column.Field,State);

coloquei isso no DrawColumnCell do dbgrid, mas não deu certo.
Alguém pode me dar uma mãozinha! :D


Janete

Janete

Curtidas 0

Respostas

Janete

Janete

03/05/2004

sobe


GOSTEI 0
Rômulo Barros

Rômulo Barros

03/05/2004

Ok. Seu problema é simples, mas não vou postar. he he he

Aqui no fórum, existe uma opção de PESQUISAAAAAAAAA e, antes de cliclar no botão, escreva no edit de pesquisa o valor ´DBGrid´;

Pronto, vc sabera´o que quer mais rápido possível....


GOSTEI 0
Janete

Janete

03/05/2004

[quote:8428f85f62=´Undeclared Identifier´]Ok. Seu problema é simples, mas não vou postar. he he he

Aqui no fórum, existe uma opção de PESQUISAAAAAAAAA e, antes de cliclar no botão, escreva no edit de pesquisa o valor ´DBGrid´;

Pronto, vc sabera´o que quer mais rápido possível....[/quote:8428f85f62]

Ok meu querido, é claro q eu PESQUISEI ANTES, sempre faço isso, e faço tb até pra quem me pede ajuda, mas infelizmente não consegui encontrar pois tem uma qtde muito grande de itens dois mil...... e não consegui olhar todos, então derrepente vc podia ter me ajudado melhor já q vc sabe onde está, mas tudo bem!


GOSTEI 0
Bacalhau

Bacalhau

03/05/2004

Janete, segue um procedure que coloca uma grid em branco/cinzento linha sim/linha não. Não é o que procuras mas a base é essa e é activado no OnDrawColumnCell

procedure TFichaDeCliente.MudaCor(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);

var HoldColor : TColor;

begin
HoldColor := DBGrid1.canvas.Brush.color; // guarda original
if table2.recno mod 2 = 0 then
begin
DBGrid1.Canvas.Brush.color := clsilver;
dbgrid1.DefaultDrawcolumnCell(Rect,Datacol,Column,state);
dbgrid1.canvas.Brush.color := holdcolor;
end;
end;


abraço
bacalhau


GOSTEI 0
Rafael.valler

Rafael.valler

03/05/2004

Janete, Tente assim:
:idea:
Procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if Table1.FieldByName(´Campo1´).Value <> ´ ´ then
DBGrid1.Canvas.Font.Color := clGreen
else
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect,Field,State);
end;


GOSTEI 0
Fer_nanda

Fer_nanda

03/05/2004

Olá Janete, fiz alguma coisa parecida, não está funcionando perfeitamente, mas dah uma olhada, numa dessa vc consegue mudar
on DrawColumnCell

  if ClientDataSet1codigo_usuario.AsInteger = 2 then  // sua condição (um exemplo)
  begin
    for i := 0 to 4 do// contador para seu numero de colunas
    begin
        DBGrid1.Columns[i].Font.Color  := clred;
    end;
  end
  else
  begin
    for i := 1 to 4 do// contador para seu numero de colunas
    begin
        DBGrid1.Columns[i].Font.Color  := clBlack;
    end;
  end;



GOSTEI 0
Janete

Janete

03/05/2004

tentei todas as opções mas ainda não deu certo, é q teria q acontecer isso logo no form show do formulário pra já trazer cada um com sua cor conforme o if q fiz tipo de aquele item q vai aparecer no dbgrid tiver itens agrupados nele por outra tabela a fonte da linha daquele item fica vermelha se não fica preta, e se eu usar o DrawColumnCell só muda se clicar nos itens, e o DrawDataCell não faz nada não sei por q mas nem passa por ele. :?:


GOSTEI 0
POSTAR