Fórum Erro em variável Boolean #268113
11/02/2005
0
Por favor me ajudem na logica abaixo. Quando tento executar o programa
o trecho ´DataMod.ADOTable_Taloes_ChequesChq_Liberado = True´ acusa o erro: ´Operator not aplicable to this operand type´.
O campo CHQ_Liberado é de uma tabela ACCESS Tipo SIM/NÃO (Será que é Booleano no Delphi?). Acho que sim. Também gostaria de saber como implementar DUAS EXPRESSÕES BOOLEANAS DENTRO DE UM IF conforme abaixo: SE (campo1 é verdadeiro) e (campo2 é falso) então...
Segue meu código:
if DataMod.ADOTable_Taloes_ChequesChq_Liberado = True then
begin
{ not DataMod.ADOTable_Taloes_ChequesChq_Encerrado then}
SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Ini.Asinteger;
SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Fin.Asinteger;
while SeqIni <= SeqFin do
Begin
NumChq := formatcurr(´0000000000´,SeqIni);
Lista.Add(NumChq);
Inc(SeqIni);
end;
next;
end;
Muito Obrigado,
Alex
Alexsandro
Curtir tópico
+ 0Posts
11/02/2005
Massuda
if DataMod.ADOTable_Taloes_ChequesChq_Liberado = True then
if DataMod.ADOTable_Taloes_ChequesChq_Liberado.AsBoolean then
if (condição1) and not (condição2) then...
Gostei + 0
11/02/2005
Aroldo Zanela
if DataMod.ADOTable_Taloes_ChequesChq_Liberado = True then
begin
{ not DataMod.ADOTable_Taloes_ChequesChq_Encerrado then}
SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Ini.Asinteger;
SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Fin.Asinteger;
while SeqIni <= SeqFin do
Begin
NumChq := formatcurr(´0000000000´,SeqIni);
Lista.Add(NumChq);
Inc(SeqIni);
end;
next;
end;
AlexColega,
O Massuda já explicou como utilizar corretamente mais de um teste booleano numa estrutura de desvio condicional IF. Entretanto no código acima, há dois erros que impedem o funcionamento de sua rotina, a saber:
SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Ini.Asinteger; SeqIni := DataMod.ADOTable_Taloes_ChequesChq_Seq_Fin.Asinteger;
SeqIni recebe a sequência inicial e final, ficando então apenas com o valor final.
while SeqIni <= SeqFin do Begin NumChq := formatcurr(´0000000000´,SeqIni); Lista.Add(NumChq); Inc(SeqIni); end; next;
O next está fora da estrutura de repetição While.
Portanto, acredito que o código abaixo poderá ser otimizado para:
if (DataMod.ADOTable_Taloes_ChequesChq_Liberado.Value) and not (DataMod.ADOTable_Taloes_ChequesChq_Encerrado.Value) then var I: Integer; begin SeqINI := DataMod.ADOTable_Taloes_ChequesChq_Seq_Ini.Asinteger; SeqFIN := DataMod.ADOTable_Taloes_ChequesChq_Seq_Fin.Asinteger; For I := SeqINI to SeqFIN do Lista.Add(FormatFloat(´0000000000´, I); end;
Gostei + 0
11/02/2005
Alexsandro
Muito Obrigado,
A Ajuda de vocês foi crucial, resolvido...
Alex
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)