Erro no IF no começo da procedure

22/02/2017

0

Bom dia, estou fazedno um programa e queria fazer uma comparação de códigos como está ai:
if Dm.Cd_Escolha = 1 or Dm.Cd_Escolha = 2 or Dm.Cd_Escolha = 3 or Dm.Cd_Escolha = 4 or
Dm.Cd_Escolha = 5 or Dm.Cd_Escolha = 6 or Dm.Cd_Escolha = 7 or Dm.Cd_Escolha = 8 or
Dm.Cd_Escolha = 9 or Dm.Cd_Escolha = 10 or Dm.Cd_Escolha = 11 or Dm.Cd_Escolha = 12 or
Dm.Cd_Escolha = 13 or Dm.Cd_Escolha = 14 or Dm.Cd_Escolha = 15 or Dm.Cd_Escolha = 16 then ...

está dando o seguintes erros:
type of expression must be BOOLEAN
Expected initialization but recieved `=`
Expected the end of file but recieved an identifier

o Dm eh o data module e o Cd_Escolha eh uma variavel global, ela n tem ligacao com o banco, ele so foi declarado no data module

uso o delphi 10.1 berlin, firebird 2.5

Queria saber como resolver isso, n achei na internet, quem poder ajudar eu agradeco.
Leonardo

Leonardo

Responder

Posts

22/02/2017

Emerson Lara

Você tem usar o parentsis
exemplo

if ( Dm.Cd_Escolha = 1 )or (Dm.Cd_Escolha = 2) or ( Dm.Cd_Escolha )

faça isso nas demais condições.
Responder

22/02/2017

Luiz Freitas

Olá Leonardo,
tudo bem?

Além da dica do @Borys, você deve informar qual campo do ClientDataSet você está usando na comparação (suponho que Cd_Escolha é o nome de um ClientDataSet).

Por Exemplo: if (Dm.Cd_EscolhaCODIGO.AsInteger = 1) or (Dm.Cd_EscolhaCODIGO.AsInteger = 2) or...

Além disso, você poderia testar dessa forma: if Dm.Cd_EscolhaCODIGO.AsInteger in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] then...


Testa ai e avisa se deu certo depois :)
Responder

22/02/2017

Leonardo

Olá Leonardo,
tudo bem?

Além da dica do @Borys, você deve informar qual campo do ClientDataSet você está usando na comparação (suponho que Cd_Escolha é o nome de um ClientDataSet).

Por Exemplo: if (Dm.Cd_EscolhaCODIGO.AsInteger = 1) or (Dm.Cd_EscolhaCODIGO.AsInteger = 2) or...

Além disso, você poderia testar dessa forma: if Dm.Cd_EscolhaCODIGO.AsInteger in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] then...


Testa ai e avisa se deu certo depois :)


Como disse o Cd_escolha n ta dentro do banco ou do dataset eu fiz um modo q o cd_escolha so armazena um valor mas esse valor n ta no banco, eu so uso ele como referencia, tipo, se o checkbox1 e o checkbox3 estiverem marcado o cd_escolha recebe 1 e em outro lugar eu armazeno uma string no banco, ou seja, ele so serve como referencia. Ai eu ia usar ele justamente pra isso q se codigo dele fosse 1 eu ia executar oq ta dentro do if.

Falei isso so pq o cd_escolha n aceitou o .asinteger, mas pela ajuda ;D
Responder

22/02/2017

Leonardo

Obg Luiz, funcionou!!! E desculpe pelo erro idiota q cometi kkkk, sou meio iniciante em delphi ainda ;c
Responder

22/02/2017

Leonardo

Obg Luiz, funcionou!!! E desculpe pelo erro idiota q cometi kkkk, sou meio iniciante em delphi ainda ;c
Responder

22/02/2017

Luiz Freitas

Obg Luiz, funcionou!!! E desculpe pelo erro idiota q cometi kkkk, sou meio iniciante em delphi ainda ;c


Que bom que deu certo cara!

Fica tranquilo, agente aprende é assim mesmo... perguntando, pesquisando, tentando, errando... é assim mesmo :)
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