Inabilitando um componente caso não atenda o que tem no DBGRID e Habilitar se atender no Delphi

07/07/2021

0

Boa tarde pessoal.
Tenho um DBGrid e 06 componentes do tipo TCheckBox.

Tenho um botão imprimir e acima os checkboxs, como no grid coluna 0, tem os valores 1 , 3 e 5 os ckeckbox 15, 17 e 19 ficam ativos e os 16, 18 e 20 inativos. Utilizei o código abaixo mas ele esta me retornando somente o valor 1 não esta me retornando as condições que tem para os valores 3 e 5 já que estão ali no grid, segue imagem abaixo, para melhor entenderem:

https://prnt.sc/19am15y

Segue linha de código que eu coloquei dentro do Botão Salvar

ckb_Imp_15_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 1);
  ckb_Imp_16_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 2);
  ckb_Imp_17_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 3);
  ckb_Imp_18_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 4);
  ckb_Imp_19_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 5);
  ckb_Imp_20_dezenas.Enabled := Not(dbg_Campos.columns.Items[0].field.Value <> 6);


Ele esta deixando ativo somente o checkbox 15, era pra deixar os demais ja que na coluna 0 do grid tem os valores 1 , 3 e 5, se observarem na imagem acima tem 7 registros no grid, com valores diferentes na coluna 0 do grid.

O que pode ser feito nesse código para fazer o que estou querendo?
Rubens Pena

Rubens Pena

Responder

Posts

08/07/2021

Natanael Ferreira

O seu código não está funcionando porque ele verifica somente o primeiro registro.

Você precisa fazer um loop nos registros da DBGrid e ir testando os valores.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar