Exactamente lo que necesitaba es que ese botón esté sólo presente y activo, mientras estoy en el Get. Es un botón que abre un diálogo de búsqueda para los posibles valores de ese campo. Por tanto, sólo debe estar activo, cuando está el foco en ese Get. Cuando no estás en ese campo, debe estar oculto. Con Enable y Disable, sigue sucediendo lo mismo (si lo sustituyo tal como lo tengo en mi código por los Hide y Show) si lo desactivo desde el oGetArticulo:bLostFocus, que al pulsar el botón, el Get pierde el foco, evalua el oGetArticulo:bLostFocus donde se desactiva el botón y por tanto no ejecuta tampoco la acción del ACTION del botón...
Ahora bien, las soluciones que me habéis planteado, el desactivarlo desde el VALID del oGetArticulo o bien desde ACTION del propio boton me han funcionado perfectamente.
El problema que me surge ahora, es que al ponerle una cláusula VALID en el oGetArticulo y pulsar el botón para buscar, ese cláusula se evalúa y no deja abrirse el diálogo de búsqueda, puesto que el oGetArticulo no tiene un valor válido...
- Code: Select all Expand view RUN
REDEFINE GET oGetArticulo VAR cArticulo ID 140 OF oDlg PICTURE '@!S12' UPDATE;
VALID ( oBtnBusArt:Hide(), Clave_Ok( "Art", cArticulo, 1 ) )
oGetArticulo:bLostFocus := { || oBtnGama:Hide(), SetKey( VK_F2, nil ) }
REDEFINE BUTTON oBtnBusArt ID 2060 OF oDlg ACTION Bus_Art( oDlg, oGetArticulo )
Saudos!