Page 2 of 2

Posted: Thu Jan 17, 2008 3:46 pm
by FiveWiDi
Antonio Linares wrote: Rafa, tu código y el mio hacen lo mismo. La segunda parte de un .AND. no se ejecuta si no se cumple la primera parte.
Antonio,

lo que dices es válido si se usa esta opción del compilador?

"# /Z Esta opción elimina la optimización debida a la evaluación abreviada
# para los operadores lógicos .AND. y .OR. Su objetivo es ayudar a aislar
# un código que depende del comportamiento de versiones anteriores de
# CA-Clipper."

Saludos
Carlos G.

Posted: Thu Jan 17, 2008 8:28 pm
by Antonio Linares
Carlos,

No es válido si usas esa opción.

Mejor no usarla, salvo que necesites depurar las dos partes.

Posted: Thu Jan 17, 2008 9:06 pm
by FiveWiDi
Antonio Linares wrote:Carlos,

No es válido si usas esa opción.

Mejor no usarla, salvo que necesites depurar las dos partes.
Gracias, de hecho no la uso.
Necesitaba que alguien con conocimiento me lo confirmara.

Saludos
Carlos G.

Posted: Fri Jan 18, 2008 2:16 pm
by miragerr
Antonio

Resolvi o MEU problema da seguinte forma:

Code: Select all

   if ::bKeyDown != nil .AND. ::ClassName() == "TGET"
      if ValType( uVal := Eval( ::bKeyDown, nKey, nFlags, Self ) ) == "N" .and. ;
         uVal == 0
         return 0
      endif
   endif
Como vc pode ver, desta forma tenho outras classes que herdam a TGET e executam 2x a mesma função, pois na classe WINDOWS.PRG

Code: Select all

   if Upper( ::ClassName() ) != "TGET" .and. ::bKeyDown != nil
      return Eval( ::bKeyDown, nKey, nFlags )
   endif
axo que esta pequena modificação, podera resolver muitos problemas de outros usuarios

Espero ter ajudado

Posted: Wed Jan 23, 2008 9:22 am
by Antonio Linares
gracias!