Ir para conteúdo
  • Cadastre-se

dev botao

DBGrid no Lazarus


Ver Solução Respondido por cefantacini,
  • Este tópico foi criado há 1663 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Estou migrando meus sistemas para o Lazarus e me deparei com um problema.

Eu filtro os registros que estão amarrados ao DBGrid, aí ele me mostra a informação assim:

image.png.42adac17d7b9b26c6a00479c830386d0.png

O Campo índice tem valor na segunda linha, mais não aparece logo após o filtro, porém se eu clicar sobre a linha, ele passa a aparecer....

image.png.d4e1c5c900f803be0a7f1a9eb00d8f74.png

Alguém teria ideia do que pode ser?

 

image.png

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você customizou o OnPaint ?

Pode ser ainda alguma configuração de Cores no DBGrid 

Veja o Link abaixo... tem muita informação sobre Grids no Lazarus... do básico ao avançado...

https://wiki.lazarus.freepascal.org/Grids_Reference_Page

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Solution

Valeu Daniel, era isso  mesmo, tinha uma rotina o evento DrawColumnCell, assim:

begin
  //inverte a cor quando selecionado
  if gdSelected in State
  then
    begin
      TDBGrid( Sender ).Canvas.Brush.Color := clHighlight;
      TDBGrid( Sender ).Canvas.Font.Color  := clHighlightText;
      TDBGrid( Sender ).Canvas.Pen.Color := Brush.Color;
    end
  else
    begin
      if DMBDComum.IbQrPesquisaPRO_DESATIVADO.AsString = '1'
      then
        TDBGrid( Sender ).Canvas.Font.Color := clRed;
      if DMBDComum.IbQrPesquisaPRO_SELECIONADO.AsString = '1'
      then
        TDBGrid( Sender ).Canvas.Font.Color := clBlue;
    end;
  TDBGrid( Sender ).DefaultDrawColumnCell( Rect, DataCol, Column, State );
end;

a última linha, TDBGrid( Sender ).DefaultDrawColumnCell( Rect, DataCol, Column, State );, estava no lugar errado, tem que ser antes do end, assim:

begin
  //inverte a cor quando selecionado
  if gdSelected in State
  then
    begin
      TDBGrid( Sender ).Canvas.Brush.Color := clHighlight;
      TDBGrid( Sender ).Canvas.Font.Color  := clHighlightText;
      TDBGrid( Sender ).Canvas.Pen.Color := Brush.Color;
    end
  else
    begin
      if DMBDComum.IbQrPesquisaPRO_DESATIVADO.AsString = '1'
      then
        TDBGrid( Sender ).Canvas.Font.Color := clRed;
      if DMBDComum.IbQrPesquisaPRO_SELECIONADO.AsString = '1'
      then
        TDBGrid( Sender ).Canvas.Font.Color := clBlue;
      TDBGrid( Sender ).DefaultDrawColumnCell( Rect, DataCol, Column, State );
    end;
end;

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1663 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.