Page 1 of 1
Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 12:39 am
by leandro
Buenas tardes para todos,
como dice el encabezado, requiero cambiar el action, valid y picture en tiempo de ejecución de un get, se puede hacer esto?
De antemano gracias
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 7:42 am
by cnavarro
Leandro, explica un poco mejor lo que necesitas
Cambiar las propiedades de un objeto ya creado?, bien, pero desde otro get?, boton?,......no debería haber problema
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 7:50 am
by hmpaquito
Bueno, para bAction y bValid lo que haria yo sería simplemente poner un if en el codeblock de la expresion del action y del valid porque yo no tocaria los codeblocks originales. Puede funcionar o no, dependerá si se han pasado a variables intermedias.
Con el picture. Ahi habria que cambiarlo en la data ::cPicture.
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 1:25 pm
by karinha
Algo asi?
Code: Select all
FUNCTION Main()
Local oDlg, oGet, oBtn
Local lTest := .t.
Local cTipo := "J", oTEST1,oTest2
Local cCGCCPF := Space(14)
@ 10, 2 GET oTEST1 VAR cTipo pixel OF oDlg PICTURE "!";
valid VerificaAltera(cTipo,oTest2,@cCgcCpf)
RETURN NIL
Function VerificaAltera( cTipo, oGet, cCgc )
If !cTipo$"F/J"
MsgStop("Deve ser digitado (F)isicio (J)uridico","Teste")
Return(.F.)
Endif
If cTipo="J".and.oGet:cPicture!="@R 99.999.999/9999-99"
cCgc:=Space(14)
oGet:cPicture:="@R 99.999.999/9999-99"
oGet:oGet:Picture:="@R 99.999.999/9999-99"
oGet:Refresh()
ElseIf cTipo="F".and.oGet:cPicture!="@R 999.999.999-99"
cCgc:=Space(11)
oGet:cPicture:="@R 999.999.999-99"
oGet:oGet:Picture:="@R 999.999.999-99"
oGet:Refresh()
Endif
Return(.t.)
Saludos.
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 2:45 pm
by leandro
Gracias a todos por responder
Me explico
Tengo definidos los objetos de la siguiente manera:
Code: Select all
....
REDEFINE GET oGnit VAR identifica ID 4019 OF oDlgFct UPDATE BITMAP "Bbusc" ;
ACTION prueba() VALID (prueba2,vSale)
REDEFINE BUTTONBMP BtnS ID 4002 OF oDlgFct ACTION cambiaAction()
....
function prueba1()
....
return nil
function prueba2()
....
return nil
function prueba3()
....
return nil
function prueba4()
....
return nil
function cambiaAction()
debe cambiar el en get oGnit el ACTION prueba()
por la ACTION prueba3()
debe cambiar el en get oGnit el VALID prueba2()
por VALID prueba4()
return nil
Espero haberme echo entender
De antemano gracielas
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 2:46 pm
by leandro
Gracias karinha
Lo del picture funcione correctamente, no se si de la misma manera se pueda hacer lo del ACTION y lo del VALID.
Gracielas
Re: Cambiar ACTION, VALID Y PICTURE Tiempo ejecución
Posted: Wed Sep 11, 2019 3:45 pm
by Marcelo Via Giglio
Leandro,
si tienes una condición por la cual cambias el picture, no veo problema de utilizar la misma para el valid y el action, define una función para el valid y otra para el action y pasa como parametro la condición y asi validas tomando en cuenta la condicion y haces los mismo con el action
....VALID miValid( .., condicion ) ACTION miAction( ...,condicion)
function miValid(...,condicion)
do case
case condicion = ...
prueba4()
case condicion = ...
prueba3()
endcase
reuturn .F.
function miAction(...,condicion)
do case
case condicion = ...
llamar prueba1()
case condicion = ...
llamar prueba2()
endcase
reuturn