Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 16
pacopenin Va por buen camino
Extraño caso al evaluar una condición.

Hola a todos.
No se si le ha pasado a alguien pero a mi me ha pasado en dos o tres proyectos distintos y con distintas versiones de Delphi (2, 6 y ahora con 2007). No se porque ocurre pero de vez en cuando pasa. En esta ocasión es al evaluar un if, que según se ve en la ventana de depuración la condición devuelve falso y está ejecutando las instrucciones correspondientes al valor verdadero.
Lo pongo no para buscar una solución, sino como curiosidad ya que como digo, me ha pasado alguna vez más.

__________________
http://www.gestionportable.com
Responder Con Cita
  #2  
Antiguo 16-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
pacopenin,

Cita:
Empezado por pacopenin
...al evaluar un if...la condición devuelve falso y está ejecutando las instrucciones correspondientes al valor verdadero...Lo pongo no para buscar una solución, sino como curiosidad...
Pregunto:

1- ¿Cual es el tipo de dato de la variable Name?.

2- ¿Como solucionas el problema en las condiciones que lo planteas?

Nelson.
Responder Con Cita
  #3  
Antiguo 16-04-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si no me equivoco, esas cosas suelen suceder, se deben a optimizaciones del compilador. Puede ser porque no se haga uso después de ese valor/variable, o alguna otra causa similar.
Creo
Responder Con Cita
  #4  
Antiguo 16-04-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 16
pacopenin Va por buen camino
Casimiro, me imagino que tiene que ver con lo que comentas, pero recuerdo haber perdido mucho tiempo hace unos años peleándome contra algo similar.

Nelson, la variable name es un string. Ante la perspectiva de volver a perder el tiempo, modifiqué la función que da entrada denominada buscaGrid y que ejecuta un Query en el cual ya hago ese filtrado.

Nunca os pasó algo similar? Será que tengo una lógica extraña y ya he forzado dicha situación varias veces.
__________________
http://www.gestionportable.com
Responder Con Cita
  #5  
Antiguo 17-04-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Amigo a mi parecer está bien la evaluación del resultado.

Suponiendo lo siguiente
Código Delphi [-]
    Name:='FFormaPago';

    {Esta expresión debería devolver True si se cumple alguna de las condiciones}
    (Name='FCat') Or (Name='FUsu') or (name='FConcepto') or (Name='FFormaPago');

    {En este caso se cumple que Name='FFormaPago', por lo tanto el resultado de la expresión es True}

     If Not  ((Name='FCat') Or (Name='FUsu') or (name='FConcepto') or (Name='FFormaPago')) then

    {Aquí estas evaluando la negación de True, que es False, por lo tanto se cumple la condición del IF}
    
     {Deberías cambiar la condición por...}
     If ((Name='FCat') Or (Name='FUsu') or (name='FConcepto') or (Name='FFormaPago'))=False then

Saludos cordiales
Responder Con Cita
  #6  
Antiguo 17-04-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 16
pacopenin Va por buen camino
Cita:
Empezado por cloayza Ver Mensaje

Código Delphi [-]

     If Not  ((Name='FCat') Or (Name='FUsu') or (name='FConcepto') or (Name='FFormaPago')) then

    {Aquí estas evaluando la negación de True, que es False, por lo tanto se cumple la condición del IF}
Gracias por el comentario cloayza, pero no puedo estar de acuerdo con lo que comentas. Ese razonamiento a mi no me encaja, sino
esto no funcionaría así ¿no?



Saludos,
__________________
http://www.gestionportable.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evaluar doble condicion al hacer clic en boton jafera OOP 2 25-01-2014 19:00:52
El extraño caso de la etiqueta (TLabel) invisible. TiammatMX OOP 1 10-11-2011 22:11:07
Evaluar un Proyecto Migpal Debates 2 24-11-2005 13:23:05
Extraño caso con Rave CartoneroWeb Impresión 0 20-10-2005 22:53:45
Locate en IBX caso extraño raul_sal Conexión con bases de datos 1 27-03-2004 18:41:38


La franja horaria es GMT +2. Ahora son las 00:25:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi