Problemas com if

Delphi

04/03/2005

é o seguinte pessoal
estou usando esse codigo


IF TBClienteEMP_TIPO.Value = ´PENSIONISTA´ THEN begin
Label17.Visible:= TRUE;
DBEdit22.Visible:= TRUE;
DBEdit22.SetFocus;
end ELSE BEGIN
Label17.Visible:= false;
DBEdit22.Visible:= FALSE;
end;
IF TBClienteEMP_TIPO.Value = ´APOSENTADO´ THEN begin
Label17.Visible:= TRUE;
DBEdit22.Visible:= TRUE;
DBEdit22.SetFocus;
end ELSE BEGIN
Label17.Visible:= false;
DBEdit22.Visible:= FALSE;
end;
end;

so q so esta executano apartir do segundo IF e esse codigo aki (so inverte a ordem do valor do campo APOSENTADO vem primeiro de depois PENSIONISTA) tbm so executa apartir do 2ª if :


IF TBClienteEMP_TIPO.Value = ´APOSENTADO´ THEN begin
Label17.Visible:= TRUE;
DBEdit22.Visible:= TRUE;
DBEdit22.SetFocus;
end ELSE BEGIN
Label17.Visible:= false;
DBEdit22.Visible:= FALSE;
end;
IF TBClienteEMP_TIPO.Value = ´PENSIONISTA´ THEN begin
Label17.Visible:= TRUE;
DBEdit22.Visible:= TRUE;
DBEdit22.SetFocus;
end ELSE BEGIN
Label17.Visible:= false;
DBEdit22.Visible:= FALSE;
end;
end;


ja conferi o valor dos campos pois estao em um dbcombobox e nao tem como o valor ser diferente !

Espero q alguem saiba como solucionar isso


Ate+

Valeu Galera


Guilherme

Guilherme

Curtidas 0

Respostas

Massuda

Massuda

04/03/2005

Me parece que os dois if...then...else são iguais, exceto que testam condições que são mutuamente exclusivas (ou acontece um ou acontece o outro).

Quando você testa primeiro se TBClienteEMP_TIPO.Value é ´PENSIONISTA´ e o resultado do teste é verdadeiro, o else do segundo teste acaba ocultando seu label e dbedit. se TBClienteEMP_TIPO.Value é ´APOSENTADO´, tudo dá certo, o que acaba dando a impressão que apenas o segundo if é executado.

Quando você testa primeiro se TBClienteEMP_TIPO.Value é ´APOSENTADO´ acontece o oposto e acaba dando a impressão que apenas o segundo if é executado.

Como as condições são mutuamente exclusivas, você poderia testar dessa forma:
IF TBClienteEMP_TIPO.Value = ´PENSIONISTA´ THEN begin 
  // é pensionista
end
ELSE IF TBClienteEMP_TIPO.Value = ´APOSENTADO´ THEN begin 
  // é aposentado
end
ELSE BEGIN 
  // nem pensionista, nem aposentado
end;



GOSTEI 0
Guilherme

Guilherme

04/03/2005

Nossa cara veleu ..........

nao sei o q seria do programa se nao resolvese isso .....
valeu mesmo ....


GOSTEI 0
POSTAR