Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Colorir linha do Dbgrid


valSistemasDelphi

Pergunta

Olá amigos do Fórum.. Tenho um form produtos onde tenho dois RadiosButons, "Ativo" e "Inativo"!!  Gostaria que quando eu clicasse no RadioButton("Inativo"), A linha em foco ou onde eu selecionar com o mouse ficasse "vermelha" indicando que aquele produto está inativo, mais so aquela linha selecionada.. E o outro para quando o produto ficar "Ativo" denovo, e selecionar e pintar a cor preto por exemplo..

o que eu consegui fazer ate agora sem sucesso foi isso, mais ele acaba colorindo todas as linhas..

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

begin


if radiobutton2.Checked = true then
//If (gdFocused in State) then

begin

  DBGrid1.Canvas.Font.Color := clRed;

end;

if Radiobutton1.Checked = true then
  DBGrid1.Canvas.Font.Color := clGreen;

DBGrid1.DefaultDrawColumnCell( Rect, DataCol, Column, State);
 

Mais ele colori todas as linhas ao passar o mouse pelo grid.. Quem poder me ajudar a respeito disso!!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

pra voce deixar um produto ativo ou inativo, e mostrar isso no dbgrid, voce deve criar um campo para controle na sua tabela

tipo :  status   ( i ou 0 para Inativo )  e ( a ou 1 para ativo ) char ou numerico

dessa forma voce tera o controle no dbgrid que será mostrado em vermelho ou verde no ( DrawColumnCell  )

depois , basta voce clicar duas vezes na linha selecionada para mudar a condição

abraço

 

Link para o comentário
Compartilhar em outros sites

  • 0

voce vai fazer um TRádioButton para cada linha da tabela ? claro que não ... mas pelo  TRádioButton voce vai poder saber se uma linha esta marcada ou não, pela condição do campo do registro ( status )

é bem simples ... coloque mais um campo na sua tabela como mencionei

status - numeric ( 1 )

depois no evento   DrawColumnCell  voce coloca a condição do TRádioButton e a condição para que o registro apareça em vermelho ou verde

ai no procedure TForm1.DBGrid1DblClick(Sender: TObject); ( envento duplo click  do dbgrid )  voce muda a condição do campo ( Status ) do registro selecionado ( 1 ou 0 )

e vai ficar da maneira como voce quer

voce sabe como fazer ?  quer tentar fazer sozinho ?

abraço

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Considere o tópico como resolvido.. Consegui seguindo está lógica.. Para o caso de surgir alguém com o mesmo problema estarei postanto o código!!!!

 if Form5.IBTable2.FieldByName('Status').AsString = 'Inativo' then  // Se o campo Status estiver como "Inativo" Executa a cor...
DbGrid1.Canvas.Font.Color := clRed;
DbGrid1.DefaultDrawDataCell(Rect,DbGrid1.Columns[datacol].field, State);

Simples assim..!! Valeu jhonas pela ajuda!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...