Antonio, pude hacer parar el dialogo de la siguiente manera, adjunto extracto del codigo:
No se si esta correcto, pero me funciona bien.
Agradecere tus comentarios u opinión como maestro....
Jorge Gayoso
Function msgbox(cTextoMsg, aPrompts, nDef, nStp, sStp, sColor, tNotas,xdescr, cJustificado)
Local oDlg, lExit := .F., nSeleccion := 0, nI, nC:=1, nLB, tG:={}, nL, nAnchoDialogo, nAltoDialogo
Local nAnchoLetra:=9, nAltoLetra:=24,nAnchoParaBotones
.
.
.
.
DEFINE DIALOG oDlg SIZE nAnchoDialogo, nAltoDialogo
nL:=1
for nI:=1 to len(tG)
@nL,1 say tG[nI] OF oDlg SIZE len(tG[nI])*nAnchoLetra,nAltoLetra
nL:=nL+2
next nI
nL:=nL+1
@ nL, nC BUTTON aPrompts[1] OF oDlg SIZE nLB*nAnchoLetra,nAltoLetra ACTION ( nSeleccion:=1, lExit := .T., oDlg:End() )
nC+=nLB
if len(aPrompts)>=2
@ nL, nC BUTTON aPrompts[2] OF oDlg SIZE nLB*nAnchoLetra,nAltoLetra ACTION ( nSeleccion:=2, lExit := .T., oDlg:End() )
nC+=nLB
endif
.
.
.
ACTIVATE DIALOG oDlg VALID lExit CENTER
do while .not. lExit
SysRefresh()
enddo
msgalert('paso')
Return nSeleccion
Antonio Linares wrote:Llama a SysRefresh() para procesar los eventos pendientes.
Igual que en FiveWin