FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Detener Aplicacion
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Detener Aplicacion
Posted: Thu Mar 27, 2008 06: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

Colt Hop ED, S.L.
Carlos Blas Fern谩ndez Dom铆nguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Detener Aplicacion
Posted: Thu Mar 27, 2008 08: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
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Detener Aplicacion
Posted: 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)

Colt Hop ED, S.L.
Carlos Blas Fern谩ndez Dom铆nguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.

Continue the discussion