Como saber si un control cambio.. updated()

Como saber si un control cambio.. updated()

Postby Adolfo » Sun Oct 23, 2016 11:02 pm

Hola fivewinners

Para una aplicacion debo saber si alguno de los controles cambio de su valor inicial, sea Get, checkbox, combobox.

Donde le puedo hechar una mirada, es para informar al usuario que no grabo las modificaciones hechas... ya sea con una alerta visual, mensajes, msgyesno(), aun no decido como, mi primer paso es averiguar que hay un control que cambio.

Cualquier consejo sera bienvenido.

Gracias de antemano.
Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Como saber si un control cambio.. updated()

Postby Antonio Linares » Mon Oct 24, 2016 7:38 am

Adolfo,

Declaramos un array en donde se guardarán los valores iniciales:

local aInitValues := {}

y antes de llamar a ACTIVATE DIALOG, hacemos:

AEval( oDlg:aControls, { | oCtrl | AAdd( aInitValues, If( oCtrl:bSetGet != nil, Eval( oCtrl:bSetGet ), nil ) ) } )

Para comprobar si han habido cambios hacemos:

AEval( oDlg:aControls, { | oCtrl, n | If( oCtrl:bSetGet != nil .and. Eval( oCtrl:bSetGet ) != aInitValues[ n ], MsgInfo( "cambio" ),) } )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como saber si un control cambio.. updated()

Postby Antonio Linares » Mon Oct 24, 2016 7:44 am

Usando AScan() buscamos el primer control que sea distinto:

AScan( oDlg:aControls, { | oCtrl, n | oCtrl:bSetGet != nil .and. Eval( oCtrl:bSetGet ) != aInitValues[ n ] } ) != 0

un valor .T. significa que han habido cambios
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como saber si un control cambio.. updated()

Postby Adolfo » Mon Oct 24, 2016 11:43 am

Gracias Master...

Probamos y comento como me fue..

Saludos desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Como saber si un control cambio.. updated()

Postby Adolfo » Mon Oct 24, 2016 12:41 pm

Antonio...

En las pruebas que realice, funciono sin problemas..
Me falta probar en dialogos con folder.

Mi pregunta ahora es, podrá ponerse una DATA en la Clase tDialog, que asuma el valor de si cambio o no algún control, como para ser automático
...algo así como 'lChanged'


Saludos y gracias nuevamente
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
User avatar
Adolfo
 
Posts: 860
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 22 guests