Inabilitando um componente caso não atenda o que tem no DBGRID e Habilitar se atender no Delphi
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
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?
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
Curtidas 0
Respostas
Natanael Ferreira
07/07/2021
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.
Você precisa fazer um loop nos registros da DBGrid e ir testando os valores.
GOSTEI 0