poner un wait windows

1,359 views
Skip to first unread message

xor...@hotmail.com

unread,
Jan 6, 2017, 11:10:45 PM1/6/17
to Comunidad de Visual Foxpro en Español
al hacer un proceso para traer informacion de una tabla de mysql
se tarda unos segundos como puedo poner un aviso que esta
procesando invormacion

ej:
sqlexec(CcConexion,"select ******","cursor")

donde puedo colocar un wait o messagebox q indique q esta en proceso

ZeRoberto

unread,
Jan 6, 2017, 11:11:46 PM1/6/17
to publicesvfoxpro
WAIT WINDOW "Es perez" NOWAIT NOCLEAR
....Proceso
WAIT CLEAR

Jorge Galván Pérez

unread,
Jan 7, 2017, 10:04:26 AM1/7/17
to Comunidad de Visual Foxpro en Español
Te comparto la funcion realizada por el Maestro Luis María

*------------------------------------------------------
 * FUNCTION WaitWindowsCentrado(tcTexto, tcOpc, tnTimeout)
 * - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * Muestra la ventana de WAIT WINDOWS centrada
 * PARAMETROS:
 *   tcTexto   = Texto a mostrar. Puede contener saltos de línea CHR(13)
 *   tcOpc     = Opciones NOCLEAR y NOWAIT del WAIT WINDOWS nativo
 *   tnTimeOut = Segundos de espera para terminar el WAIT
 * USO: WaitWindowsCentrado(tcTexto, tcOpc, tnTimeOut)
 * EJEMPLO: WaitWindowsCentrado("Espere un momento...", "NOWAIT", 0)
 * RETORNA: Caracter
 * AUTOR: LMG - 20090824
 *------------------------------------------------------
  FUNCTION WaitWindowsCentrado(tcTexto, tcOpc, tnTimeOut)

   LOCAL lnMaxLen, lnNroLin, lnRelFil, lnRelCol, ;
     lnRows_VFP, lnFil, lnCol, lcRet, lcCmd, ln, la(1)

   *-- Texto del mensaje
   IF EMPTY(m.tcTexto)
     m.tcTexto = "Presione una tecla para continuar..."
   ENDIF

   *-- Linea mas larga de tcTexto (si es multilinea)
   m.lnMaxLen = 0
   m.lnNroLin = ALINES(la, m.tcTexto)
   FOR m.ln = 1 TO m.lnNroLin
     m.lnMaxLen = MAX(m.lnMaxLen,LEN(m.la(m.ln)))
   ENDFOR

   *-- Filas de ventana completa _VFP, distinto a WROWS(_SCREEN.NAME)
   m.lnRows_VFP = _VFP.HEIGHT / FONTMETRIC(1,_SCREEN.FONTNAME,_SCREEN.FONTSIZE)

   *-- Relación entre el tamaño de las
   *-- fuentes de WAIT WINDOWS y _SCREEN
   m.lnRelFil = FONTMETRIC(1,'Arial',9) / FONTMETRIC(1,_SCREEN.FONTNAME,_SCREEN.FONTSIZE)
   m.lnRelCol = FONTMETRIC(6,'Arial',9) / FONTMETRIC(6,_SCREEN.FONTNAME,_SCREEN.FONTSIZE)
   m.lnFil = WLROW(_SCREEN.NAME) + (m.lnRows_VFP - m.lnNroLin * m.lnRelFil) / 2
   m.lnCol = WLCOL(_SCREEN.NAME) + (WCOLS(_SCREEN.NAME) - m.lnMaxLen * m.lnRelCol) / 2

   *-- Comando
   m.lcCmd = [WAIT WINDOWS tcTexto TO lcRet AT lnFil,lnCol]

   *-- Clausulas NOWAIT y NOCLEAR
   IF NOT EMPTY(m.tcOpc) AND VARTYPE(m.tcOpc) = "C"
     IF "NOWA" $ UPPER(m.tcOpc)
       m.lcCmd = m.lcCmd + [ NOWAIT]
     ENDIF
     IF "NOCL" $ UPPER(m.tcOpc)
       m.lcCmd = m.lcCmd + [ NOCLEAR]
     ENDIF
   ENDIF

   *-- Clausula TIMEOUT
   IF NOT EMPTY(m.tnTimeOut) AND VARTYPE(m.tnTimeOut) = "N"
     m.lcCmd = m.lcCmd + [ TIMEOUT tnTimeOut]
   ENDIF

   *-- Ejecuto el comando
   &lcCmd
   RETURN m.lcRet
 ENDFUNC

Saludos. 

Gregori Arjona Toledo

unread,
Jan 9, 2017, 5:23:48 AM1/9/17
to Comunidad de Visual Foxpro en Español
Quiza sea mas simple asi?

WAIT WINDOW "MESAJE DE PRUEBA CENTRADO" AT SROWS()/2,SCOLS()/2

Saludos.

Carlos Hidalgo

unread,
Jan 9, 2017, 9:27:24 AM1/9/17
to publice...@googlegroups.com
Bien centrado va mas o menos asi

cMensaje="MESAJE DE PRUEBA CENTRADO"

WAIT WINDOW cMensaje AT (SROWS()/2),(SCOLS()/2)-INT(LEN(cmensaje)/2)
Saludos

Jose Antonio Blasco

unread,
Jan 9, 2017, 10:06:28 AM1/9/17
to Comunidad de Visual Foxpro en Español
Si, son más simples, pero mucho menos potentes que la función del Maestro Luis María.

Un saludo.



Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

Reply all
Reply to author
Forward
0 new messages