tFolderEX posible solucion ON CHANGE

tFolderEX posible solucion ON CHANGE

Postby Patricio Avalos Aguirre » Thu Oct 13, 2011 2:18 pm

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 view  RUN
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
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: tFolderEX posible solucion ON CHANGE

Postby Sebastián Almirón » Thu Jun 24, 2021 11:51 am

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
Sebastián Almirón
 
Posts: 157
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tFolderEX posible solucion ON CHANGE

Postby cnavarro » Thu Jun 24, 2021 12:20 pm

Espero haber entendido vuestras sugerencias, a ver si esto os valdría igualmente
Code: Select all  Expand view  RUN

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
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: tFolderEX posible solucion ON CHANGE

Postby Sebastián Almirón » Thu Jun 24, 2021 5:03 pm

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
Sebastián Almirón
 
Posts: 157
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tFolderEX posible solucion ON CHANGE

Postby cnavarro » Thu Jun 24, 2021 7:26 pm

Sebastian, si funciona, lo que no se ha cambiado es el metacomando
Si pruebas asi
Code: Select all  Expand view  RUN

   @ 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
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: tFolderEX posible solucion ON CHANGE

Postby Sebastián Almirón » Fri Jun 25, 2021 4:52 pm

Así si funciona, gracias Cristobal.
User avatar
Sebastián Almirón
 
Posts: 157
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 95 guests