Detener Aplicacion

Detener Aplicacion

Postby colthop » Thu Mar 27, 2008 6:46 pm

Hola amigos:

Me gustaria saber si se puede detener la ejecucion de un codigo hasta que termine una llamada.

Por ejemplo:

Procedure abajo()
quitmenu()
varidato()
Return (NIL)

Lo que quiero es que no siga hasta que termine y regrese de varidato().

Un saludo

Carlos
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Postby Raymundo Islas M. » Thu Mar 27, 2008 8:04 pm

Carlos :

Prueba a condicionar la funcion VariDato()


IF !VariDato()
Return NIL
ENDIF


Static Function VariDato()
LOCAL ...
bla
bla
bla
Return( lVarLogica )

A la variable lVarLogica le asignas .T. si quieres que siga con el proceso hasta el final y .F. si quieres que se detenga y regrese.
Todo esto, dependiendo de lo que estes haciendo.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby colthop » Sat Mar 29, 2008 11:40 am

Hola Raimundo gracias por tu respuesta pero eso no me saca del atolladero pero si me ha dado una idea para poder solucionar mi problema.

Mi problema es:
Un objeto (oDlgVar) le pinto en la ventana, contiene un get que pide, segun sea una variable (oFil = 1, 2, 3, 4, 5 ó 6), seis diferentes variables (oVar01, oVar02, oVar03, oVar04, oVar05 ó oVar06) en seis columnas distintas (1, 10, 15, 20, 25 ó 30). Para cambiar de una columna a otra utilizo dos funciones derecha e izquierda, que lo que hacen es:

1º Eliminar oDlgVar.
2º Cambiar oFil uno mas o uno menos.
3º Volver a poner oDlgVar con los nuevos valores.

Esto funciona bien si lo haces sin mucha prisa, me explico, si lo haces normalmente pero por ejemplo si lo que haces es pulsar la tecla derecha (que invoca a la funcion derecha) y dejerla pulsada sin soltarla, empieza a correr a la derecha el campo pero hay un momento que no elimina el objeto oDlgVar y queda pintado dos veces y si sueltas y vuelves a pulsar tres y asi hasta poder ver los seis.
Donde utilizo esto es en un diario de apuntes y cuando cambias de apunte pone los datos que corresponden al nuevo apunte pero si pasas por encima de una posicion que se habia quedado vuelve a pintar el dato del anterior apunte.

Mi pregunta es si existe alguna manera de comprobar si existe el objeto y esperar a que exista para eliminarlo.

por ejemplo:

en vez de poner oDlgVar:End() para borrar el objeto llamar a una función QuitObje() y sea:

STATIC FUNCTION QuitObje()
do while .T.
if (existe el objeto)
exit
else
sysrefresh()
endif
loop
enddo
oDlgVat:End()
Return(nil)
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España


Return to FiveWin para Harbour/xHarbour

Who is online

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