Problemas com if
é 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
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
Curtidas 0
Respostas
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:
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
04/03/2005
Nossa cara veleu ..........
nao sei o q seria do programa se nao resolvese isso .....
valeu mesmo ....
nao sei o q seria do programa se nao resolvese isso .....
valeu mesmo ....
GOSTEI 0