Detener el flujo del programa 'n' segundos

Detener el flujo del programa 'n' segundos

Postby FiveWiDi » Tue Mar 28, 2017 8:25 pm

Pues eso, que no recuerdo como detener el flujo del programa 'n' segundos.

Muchas gracias,
Last edited by FiveWiDi on Tue Mar 28, 2017 8:31 pm, edited 1 time in total.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1064
Joined: Mon Oct 10, 2005 2:38 pm

Re: Detener el flujo del programa 'n' segundos

Postby xmanuel » Tue Mar 28, 2017 8:30 pm

inkey( n )
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 756
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: Detener el flujo del programa 'n' segundos

Postby FiveWiDi » Tue Mar 28, 2017 8:38 pm

xmanuel wrote:inkey( n )


Gracias Manu,

Ciertamente me valdrá porque no espero hacer nada, pero sé que había otra función que aunque detenía el flujo del programa, permitía que el sistema continuará con los eventos (por decirlo de alguna manera).

... estaba buscando mientras escribía ... creo que era HB_IDLESLEEP(1) !!!
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1064
Joined: Mon Oct 10, 2005 2:38 pm

Re: Detener el flujo del programa 'n' segundos

Postby Carles » Wed Mar 29, 2017 5:57 am

Carlos -> SysWait( <n> )
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1095
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Detener el flujo del programa 'n' segundos

Postby hmpaquito » Wed Mar 29, 2017 7:15 am

La funcion es original de alguien, de los tiempos de DOS, se llamaba sleep o similar, pero lleva modificaciones.
Vale para consola o fwh. La atencion a eventos es opcional, pasandole el parametro lSysRefresh
Funciona con un tiempo inicial.
Tiene una subcondicion, ademas del tiempo transcurrido, que permite salir antes de caducar el bucle.


Code: Select all  Expand view


#Define IsFw() .t.

FUNCTION MiSleep( nSeconds, nInitial, lSysRefresh,;
                bCondicionSalida;
               )

  IF nInitial == NIL .OR. VALTYPE( nInitial ) != "N"
       nInitial := SECONDS()
  ENDIF

  if lSysRefresh == NIL
    lSysRefresh = IsFw()
  endif

  // correct for running at midnight
  IF nInitial + nSeconds > 86399
       nInitial -= 86399
     *  Wait until midnight
     DO WHILE SECONDS() > 100  // no problem with a _very_ slow machine
     ENDDO
  ENDIF

  // calculate final time

  nSeconds += ninitial

  // Loop until we are done

  DO WHILE ( SECONDS() < nSeconds )

     IF lSysRefresh        
        SysRefresh()
     ENDIF
     *
     
     IF bCondicionSalida != NIL .AND. Eval(bCondicionSalida)
        EXIT
     ENDIF
  ENDDO

  RETURN NIL
 
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests