Page 1 of 1

Refrescar Dialogo?

Posted: Thu Feb 23, 2006 7:16 pm
by leandro
Amigos del foro de nuevo yo...

Lo que sucede ahora es lo siguiente:

Defino un dialogo , y en la clausula INIT coloco un procedimiento, ese procedimiento lo que hace es verificar la existencia de las bases de datos. Pero solamente me muestra el dialogo apenas termina el procedimiento.

Como hago para que me muestre el dialogo y luego ejecue el procedimiento.

Code: Select all

*************************************************************
*cuadro de dialogo para verificación conexion con el servidor
*************************************************************
PROC Inicio()

oT1vg1:=space(15)
oT1vg2:=space(6)

DEFINE BRUSH oBrush RESOURCE "INICIO"
DEFINE DIALOG oDlg RESOURCE "Plano10" TRANSPARENT BRUSH oBrush OF oWinp
 oProgress = TProgress():Redefine( 4001, oDlg )
 REDEFINE SAY oT1os1 ID 15 OF oDlg UPDATE

 REDEFINE SAY oT1os2 ID 4002 OF oDlg
 REDEFINE SAY oT1os3 ID 4004 OF oDlg
 REDEFINE SAY oT1os4 ID 4005 OF oDlg

 REDEFINE SAY oT1os5 ID 4003 OF oDlg
 REDEFINE SAY oT1os6 ID 4007 OF oDlg

 REDEFINE GET oT1og1 VAR oT1vg1 ID 4006 OF oDlg
 REDEFINE GET oT1og2 VAR oT1vg2 ID 4008 OF oDlg

 REDEFINE BUTTONBMP BtnE ID 4009 OF oDlg ACTION pVerUsu()
 REDEFINE BUTTONBMP BtnS ID 4010 OF oDlg ACTION (oWinp:End())

 oProgress:SetRange( 0, 2 )
 oProgress:SetPos( 0 )
 BtnE:Settext("Entrar")
 BtnS:Settext("Cancelar")
 oT1og1:bGotFocus:={||oT1og1:SelectAll()}
 oT1og2:bGotFocus:={||oT1og2:SelectAll()}
 BtnE:gotfocus()

ACTIVATE DIALOG oDlg CENTERED VALID(oLamcla:vPPexit) ON INIT (oDlg:gotfocus(),verifica())

PROC verifica()

oProgress:SetRange( 0, 2 )
oProgress:SetPos( 0 )
oLamcla:vPPexit:=.F.

oT1os2:Settext("HOSTING - Versión 0.0.1")
oT1os3:Settext("Sistemas LYMA ")
oT1os4:Settext("Bogotá (Colombia) - Año 2006")


oLamcla:oServer := TMySQLServer():New( oLamcla:cHost,oLamcla:cUsuario,oLamcla:cPassword)
IF oLamcla:oServer:NetErr()
  oT1os1:Settext("No se Puede Extablecer Comunicación Con el Servidor")
  MSGINFO("No se PuedO Extablecer Comunicación Con el Servidor")
  QUIT
ELSE
  oT1os1:Settext("Verificando Conexion con servidor")
  oProgress:nPosition += 1
  IF !(oLamcla:oServer:DBExist(oLamcla:nDBdat))
    oT1os1:Settext("La base de Datos no existe")
    MSGINFO("La base de datos no existe,"+CRLF+"por favor informe al administrador: 6136913 Ext 114 "+CRLF+"Bogotá - Colombia")
    QUIT
  ELSE
    oProgress:nPosition += 1
    oT1os1:Settext("Fin del Proceso")
    oDlg:update()
    muestra()
  ENDIF
  oLamcla:oServer:SelectDB( oLamcla:nDBdat )
ENDIF
De antemano gracias

Posted: Fri Feb 24, 2006 9:17 am
by Antonio Linares
Leandro,

En vez de usar ON INIT, usa el codeblock oDlg:bStart

Code: Select all

DEFINE DIALOG oDlg ...

oDlg:bStart = { || tu código... }

ACTIVATE DIALOG oDlg

Perfecto?

Posted: Fri Feb 24, 2006 3:46 pm
by leandro
Ok, Antonio eso era lo que necesitaba de nuevo muchas gracias. :D