tFolderEX posible solucion ON CHANGE

Post Reply
User avatar
Patricio Avalos Aguirre
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

tFolderEX posible solucion ON CHANGE

Post by Patricio Avalos Aguirre »

Estimados

El los folder el mensaje ON CHANGE si retornaba .f. este no cambiaba de pestaña, pero con
FOLDEREX cambia igualmente

una posible solucion es evaluar antes ..

Code: Select all | Expand

METHOD SetOption( nOption ) CLASS TFolderEx

   LOCAL nOldOption := ::nOption, lVal
   LOCAL nOpt :=0, nOldOpt := 0, i := 0, lVisible

   IF ! ::aEnable[ noption ]
      RETURN NIL
   ENDIF

   if nOption != ::nOption

      if ! Empty( ::bAction )
         lVal := Eval( ::bAction, nOption, nOldOption, Self )
            if valtype( lVal ) = "L" .and. !lVal
                Return( NIL )
            endif
      endif

      IF ::aSrcPrompt != NIL


..
..
y comentar esto

      /*if ! Empty( ::bAction )
         Eval( ::bAction, nOption, nOldOption, Self )
      endif*/


      ::ChangeOrder()
      ::Refresh()

   endif

return nil
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Sebastián Almirón
Posts: 159
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tFolderEX posible solucion ON CHANGE

Post by Sebastián Almirón »

Gracias, me estaba volviendo loco. 10 años después (FW 2102) aun no ha sido solucionado y con el prg de TFolderex de las ultimas versiones sigue con el problema que describes.
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: tFolderEX posible solucion ON CHANGE

Post by cnavarro »

Espero haber entendido vuestras sugerencias, a ver si esto os valdría igualmente

Code: Select all | Expand


METHOD SetOption( nOption ) CLASS TFolderEx

   LOCAL nOldOption := ::nOption
   LOCAL nOpt :=0, nOldOpt := 0, i := 0, lVisible

   nOption = Max( 1, Min( nOption, Len( ::aPrompts ) ) )

   IF ! ::aEnable[ nOption ]
      RETURN NIL
   ENDIF

   // Añadido CNL 24/06/2021
   if Valtype( ::bChange ) = "B"
      if !Eval( ::bChange, Self, nOption, ::nOption )
         Return nil
      endif
   endif

   if nOption != ::nOption
.../...

 


Sin perder la funcionlidad del :bAction
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
Sebastián Almirón
Posts: 159
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tFolderEX posible solucion ON CHANGE

Post by Sebastián Almirón »

Gracias Cristobal,
Tal y como lo has puesto no funciona, a pesar de que en la declaración del FORDEREX tengo puesto "ON CHANGE mifuncion()", al llegar al código que has puesto, el ::bChange no es un codebloq y no se evalua, ahí valtype(::bChange) devuelve 'U' en vez de 'B'.

Saludos
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: tFolderEX posible solucion ON CHANGE

Post by cnavarro »

Sebastian, si funciona, lo que no se ha cambiado es el metacomando
Si pruebas asi

Code: Select all | Expand


   @ r. c FOLDEREX oFld ...
   oFld:bChange   := { || .F. }
 

lo podrás probar
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
Sebastián Almirón
Posts: 159
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tFolderEX posible solucion ON CHANGE

Post by Sebastián Almirón »

Así si funciona, gracias Cristobal.
Post Reply