GARANTIR DESCONTO

Fórum Socorro com if then else #375712

07/10/2009

0

Pessoal, fiz o código abaixo tanto do delphi 6 quanto no 2007 e não consegui encontrar o erro. Para testarem, coloquem o código no onClick de um botão ao executar vocês verão que está tudo ok, mas ao tentar debugar o código, o delphi não faz o debug na sequencia correta. Alguém sabe como resolver isso?

var
  Sup,Tipo : String;
  vSuplemento, vTarifa: Real;
begin
  Sup := ´Lua Mel´;
  Tipo := ´Inf Extra´;

  if Sup = ´B.B.´            then ShowMessage(´ok1´)
  else if Sup = ´Map´        then ShowMessage(´ok2´)
  else if Sup = ´Fap´        then ShowMessage(´ok3´)
  else if Sup = ´Ai. Nac.´   then ShowMessage(´ok4´)
  else if Sup = ´Ai. Int.´   then ShowMessage(´ok5´)
  else if Sup = ´Lua Mel´    then ShowMessage(´ok6´);

  if Tipo = ´Adt´            then ShowMessage(´ok7´)
  else if Tipo = ´Chd´       then ShowMessage(´ok8´)
  else if Tipo = ´2º Chd´    then ShowMessage(´ok9´)
  else if Tipo = ´Inf´       then ShowMessage(´ok10´)
  else if Tipo = ´Adt Extra´ then ShowMessage(´ok11´)
  else if Tipo = ´Chd Extra´ then ShowMessage(´ok12´)
  else if Tipo = ´Inf Extra´ then ShowMessage(´ok13´);
end;



P.rodrigo

P.rodrigo

Responder

Posts

07/10/2009

Rafa.spimenta

aqui debugou normal.

procedure Tfrms055120.Button1Click(Sender: TObject);
var
  Sup, Tipo: string;
  vSuplemento, vTarifa: Real;
begin
  Sup := ´Lua Mel´;
  Tipo := ´Inf Extra´;

  if Sup = ´B.B.´ then
    ShowMessage(´ok1´)
  else
    if Sup = ´Map´ then
      ShowMessage(´ok2´)
    else
      if Sup = ´Fap´ then
        ShowMessage(´ok3´)
      else
        if Sup = ´Ai. Nac.´ then
          ShowMessage(´ok4´)
        else
          if Sup = ´Ai. Int.´ then
            ShowMessage(´ok5´)
          else
            if Sup = ´Lua Mel´ then
              ShowMessage(´ok6´);

  if Tipo = ´Adt´ then
    ShowMessage(´ok7´)
  else
    if Tipo = ´Chd´ then
      ShowMessage(´ok8´)
    else
      if Tipo = ´2º Chd´ then
        ShowMessage(´ok9´)
      else
        if Tipo = ´Inf´ then
          ShowMessage(´ok10´)
        else
          if Tipo = ´Adt Extra´ then
            ShowMessage(´ok11´)
          else
            if Tipo = ´Chd Extra´
              then ShowMessage(´ok12´)
            else
              if Tipo = ´Inf Extra´ then
                ShowMessage(´ok13´);
end;



Responder

Gostei + 0

07/10/2009

P.rodrigo

Obrigado pela reposta....mesmo assim continuo tento problemas, coloquei uma
imagem no seguinte endereço para que melhor entendam:

[url]http://www.ramagliotravel.com/erro.gif[/url]

Como podem ver, o delphi não coloca todas as ´bolinhas azuis´ e de consequencia
não consigo debugar, será alguma atualização do delphi? o mais estranho é que o
mesmo tb está acontecendo no 2007 com o december update instalado....

Obrigado!


aqui debugou normal.
procedure Tfrms055120.Button1Click(Sender: TObject);
var
  Sup, Tipo: string;
  vSuplemento, vTarifa: Real;
begin
  Sup := ´Lua Mel´;
  Tipo := ´Inf Extra´;

  if Sup = ´B.B.´ then
    ShowMessage(´ok1´)
  else
    if Sup = ´Map´ then
      ShowMessage(´ok2´)
    else
      if Sup = ´Fap´ then
        ShowMessage(´ok3´)
      else
        if Sup = ´Ai. Nac.´ then
          ShowMessage(´ok4´)
        else
          if Sup = ´Ai. Int.´ then
            ShowMessage(´ok5´)
          else
            if Sup = ´Lua Mel´ then
              ShowMessage(´ok6´);

  if Tipo = ´Adt´ then
    ShowMessage(´ok7´)
  else
    if Tipo = ´Chd´ then
      ShowMessage(´ok8´)
    else
      if Tipo = ´2º Chd´ then
        ShowMessage(´ok9´)
      else
        if Tipo = ´Inf´ then
          ShowMessage(´ok10´)
        else
          if Tipo = ´Adt Extra´ then
            ShowMessage(´ok11´)
          else
            if Tipo = ´Chd Extra´
              then ShowMessage(´ok12´)
            else
              if Tipo = ´Inf Extra´ then
                ShowMessage(´ok13´);
end;



Responder

Gostei + 0

07/10/2009

Facc

não sei se resolve, mas tente excluir as DCUs do seu projeto e recompilar


Responder

Gostei + 0

07/10/2009

Edsant

Caro amigo,

Seu Delphi deve estar com algum problema...aqui tb debugou normalmente...

Em último caso, instala o delphi novamente...fazer o que....

Um abraço...


Responder

Gostei + 0

07/10/2009

Osocram

Amigo pelo que vi no .gif esta correto.

Pois o compilador do delphi verifica se o todo o seu codigo tem chance de ser executado.
Como o segundo if nunca vai ser executado, pois a variavel nunca muda de valor o delphi ja ignora este bloco.


Responder

Gostei + 0

07/10/2009

Osocram

Perdão amigo...

Me confundi.

o melhor que vc faz p testar isso... seria vc criar um novo projeto e colar esta codigo...

Eu testei aqui e apareceu os 2 showmessage.

Vc testando em um novo projeto e assim mesmo persistir o erro... tem grande chances do problema estar no seu delphi.


Responder

Gostei + 0

08/10/2009

Carlosrm

p.rodrigo,


  vSuplemento, vTarifa: Real; 


a mensagem está lembrando que você criou duas variáveis mas nunca usou-as. Você pode comentar essa linha, suprimir essa linha ou criar o código que usa essas variáveis.

Em todos os casos, isso não impede de compilar e executar o programa. Para testar isso, crie uma terceira variável com um novo nome e coloque na mesma linha. Na próxima compilada terá 3 mensagens de ´variável declarada mas nunca usada...´

Espero ter sido útil. carlosrm


Responder

Gostei + 0

08/10/2009

Afarias

Como o Carlosrm bem colocou HINTs e WARNINGs não são erros e não impedem a compilação do projeto, apenas apontam ou chamam a atenção de pontos q podem ser problemáticos (ou não) ou melhorados.


O compilador do Delphi tb é bem esperto, e dependendo das configurações (por exemplo, ´Optimization´ habilitado) o Delphi descarta automaticamente variáveis não utilizadas e linhas de código sem utilidade (por isso não é possível passar por algumas linhas de código na depuração -- como elas não são úteis o compilador as ignora).


T+


Responder

Gostei + 0

08/10/2009

Carlosrm

afarias,

obrigado. Eu tinha estranhado os posts dos colegas que rodaram o mesmo código sem mensagens de Hint ou Warning, e agora, com as suas explicações, entendi com clareza. O Delphi trabalhou perfeitamente em todas as situações. Valeu.
carlosrm


Responder

Gostei + 0

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

Aceitar