Ver Mensaje Individual
  #3  
Antiguo 26-02-2008
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Reputación: 20
Héctor Randolph Va por buen camino
No es ningún BUG, solamente hay que tener en cuenta la precedencia de operadores.

Si el operador "AND" tiene mayor jerarquía que el operador "=", entonces la expresión será evaluada de esta manera:

Código Delphi [-]
if  Quieto = (false and SoyMasCercanoALPelota)  = (true and DiLaPelota) = false then
begin
  .
  .
end

Obviamente no te dará el resultado que esperas. Por esta razón, lo mejor es que tu mismo coloques los paréntesis para indicar el orden de evaluación.

Código Delphi [-]
if (Quieto = false) and (SoyMasCercanoALPelota = true) and (DiLaPelota = false) then
begin
  .
  .
end

Saludos
Responder Con Cita