DBGrid mudar a cor da fonte qdo abrir o form
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
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
Curtidas 0
Respostas
Janete
03/05/2004
sobe
GOSTEI 0
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....
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
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!
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
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
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
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;
: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
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
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