if com duas condições, caso a primeira condição seja verdadeira executar o procedimento
09/07/2010
0
Caso eu tenha um if com duas condições, existe a possíbilidade de ele verificar se a primeira condição for verdadeira, ele já executa o solicitado, somente se a primeira condição não for verdadeira ele verifica a segunda. Segue abaixo um exemplo:
if ((not(FileExists(vFilePath))) or (Application.MessageBox('Já existe um arquivo com esse nome!' + #13 + 'Deseja sobrescrever?', 'Pergunta', MB_ICONQUESTION + MB_YESNO) = mrYes)) then begin //Executa procedimento end;
Caso o arquivo não exista ele executa o procedimento, sem fazer a pergunta. Somente se o arquivo existir, ele irá fazer a pergunta se deseja sobreescrever o arquivo..
ps.: Sei que é possível fazer isso com if encadeado (como eu fiz), mas gostaria de saber se é possível fazer dessa forma.
Breno Oliveira
Post mais votado
10/07/2010
Caso eu tenha um if com duas condições, existe a possíbilidade de ele verificar se a primeira condição for verdadeira, ele já executa o solicitado, somente se a primeira condição não for verdadeira ele verifica a segunda. Segue abaixo um exemplo:
if ((not(FileExists(vFilePath))) or (Application.MessageBox('Já existe um arquivo com esse nome!' + #13 + 'Deseja sobrescrever?', 'Pergunta', MB_ICONQUESTION + MB_YESNO) = mrYes)) then begin //Executa procedimento end;
Caso o arquivo não exista ele executa o procedimento, sem fazer a pergunta. Somente se o arquivo existir, ele irá fazer a pergunta se deseja sobreescrever o arquivo..
ps.: Sei que é possível fazer isso com if encadeado (como eu fiz), mas gostaria de saber se é possível fazer dessa forma.
var condicao:Boolean; begin condicao:=StrToBool(edit1.text); if ((not(Condicao)) or (Application.MessageBox('Já existe um arquivo com esse nome!' + #13 + 'Deseja sobrescrever?', 'Pergunta', MB_ICONQUESTION + MB_YESNO) = mrYes)) then Showmessage('Executa somente se Condicao=True');
Marco Salles
Mais Posts
15/07/2010
Pedro Saraiva.
deem uma olhadinha ai no produto
http://produto.mercadolivre.com.br/MLB-149256966-winphar-2008-sistema-para-farmacias-e-drogarias-_JM
e ente em contato pelo e-mail pedroluissaraiva@yahoo.com.br.!
06/01/2023
Dorgival Gama
Caso eu tenha um <SPAN style="FONT-WEIGHT: bold">if</SPAN> com duas condições, existe a possíbilidade de ele verificar se a primeira condição for verdadeira, ele já executa o solicitado, somente se a primeira condição não for verdadeira ele verifica a segunda. Segue abaixo um exemplo:
if ((not(FileExists(vFilePath))) or (Application.MessageBox('Já existe um arquivo com esse nome!' + #13 + 'Deseja sobrescrever?', 'Pergunta', MB_ICONQUESTION + MB_YESNO) = mrYes)) then begin //Executa procedimento end;
Caso o arquivo não exista ele executa o procedimento, sem fazer a pergunta. Somente se o arquivo existir, ele irá fazer a pergunta se deseja sobreescrever o arquivo..
ps.: Sei que é possível fazer isso com if encadeado (como eu fiz), mas gostaria de saber se é possível fazer dessa forma.
<DIV> </DIV>
<DIV>Mas o compilador do Delphi ja é Otimizado para isto...</DIV>
<DIV> </DIV>
<DIV>Pelo menos no Delphi2010</DIV>
<DIV> </DIV>
<DIV>Veja</DIV>
<DIV> </DIV>
<DIV>
</DIV> <DIV>var condicao:Boolean; begin condicao:=StrToBool(edit1.text); if ((not(Condicao)) or (Application.MessageBox('Já existe um arquivo com esse nome!' + #13 + 'Deseja sobrescrever?', 'Pergunta', MB_ICONQUESTION + MB_YESNO) = mrYes)) then Showmessage('Executa somente se Condicao=True');
<DIV> </DIV>
<DIV>Neste pequeno exemplo se o Conteudo do Edit for igual a False >>not(Condicao) ja Retorna Positivo e não</DIV>
<DIV>Ira nen testar a Segunda que no Caso é a Mensagem</DIV>
<DIV> </DIV>
<DIV>Somente se Conteudo do Edit for igual a True >> not(Condicao) j Retorna False e ai
<DIV>Ira Exibir a Pergunta</DIV>
<DIV> </DIV>
<DIV>Teste ai...</DIV></DIV>
Olá sei que é um tópico bem antigo mais fiquei curioso quanto a variável boolean receber o valor do edit, fiz um teste aqui e não funcionou, retorna um erro que não é um valor booleano válido.
09/01/2023
Arthur Heinrich
Porém, você pode configurar o compilador para que as expressões booleanas sejam interpretadas na íntegra, fazendo com que a pergunta seja sempre executada.
Para o seu objetivo, certifique-se de que a opção "Complete Boolean Evaluation" esteja desmarcada.
Clique aqui para fazer login e interagir na Comunidade :)