Fórum DBGrid mudar a cor da fonte qdo abrir o form #229587

03/05/2004

0

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

Responder

Posts

03/05/2004

Janete

sobe


Responder

Gostei + 0

03/05/2004

Rômulo Barros

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....


Responder

Gostei + 0

03/05/2004

Janete

[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!


Responder

Gostei + 0

04/05/2004

Bacalhau

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


Responder

Gostei + 0

04/05/2004

Rafael.valler

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;


Responder

Gostei + 0

04/05/2004

Fer_nanda

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;



Responder

Gostei + 0

19/05/2004

Janete

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. :?:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar