Problema con Dialogo que no se cierra en FiveLinux

Post Reply
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Problema con Dialogo que no se cierra en FiveLinux

Post by jgayoso »

Tengo un dialogo que me dice si deseo repetir o salir, el problema que si le digo repetir el mismo dialogo el anterior no se cierra .

do while .T.
i:=msgbox('Pregunta',{'Repetir','Salir'})
if I=2
Exit
endif
Enddo

Msgbox es un dialogo que desplega los 2 botones (Repetir y Salir), al dar salir todo OK y sale. Pero al dar repetir, no cierra el dialogo de msgbox y al entrar de nuevo al mismo, lo muestra pero no deja seleccionar nada y se va un ciclo.

Estoy con UBUNTU 10.04 LTS

Quedo a la espera... y se agradece desde ya
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by Antonio Linares »

Como has definido la función msgbox() ?

La has implementado tu ?

Este código funciona bien:

Code: Select all

do while .T.
i:=msgyesno('Pregunta')
if i
   Exit
endif
Enddo
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by jgayoso »

Antonio, coloque un msgalert e igual, despues de presionar una tecla de confirmación, no sale del Dialogo de MsgAlert me lo sigue mostrando.

Mi programa realiza un chequeo y luego si esta todo OK muestra el menu. Si hay algo malo lo informa mediando un menasaje, antes de mostrar la ventana principal.

Se agradece cualquier ayuda.

Jorge Gayoso


Antonio Linares wrote:Como has definido la función msgbox() ?

La has implementado tu ?

Este código funciona bien:

Code: Select all

do while .T.
i:=msgyesno('Pregunta')
if i
   Exit
endif
Enddo
 
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by jgayoso »

Si coloco msgalert entre mis proceso, se van refrescando a medida que pasa de un msgalert a otro. ¿Habra algo que refresque windows despues de msgalert como doevent en visual basic?

Se agrade cualquier ayuda.



Antonio Linares wrote:Como has definido la función msgbox() ?

La has implementado tu ?

Este código funciona bien:

Code: Select all

do while .T.
i:=msgyesno('Pregunta')
if i
   Exit
endif
Enddo
 
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by Antonio Linares »

Llama a SysRefresh() para procesar los eventos pendientes.

Igual que en FiveWin :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by jgayoso »

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 :-)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by Antonio Linares »

Si, está bien :-)

Es una forma correcta de hacerlo modal
regards, saludos

Antonio Linares
www.fivetechsoft.com
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Problema con Dialogo que no se cierra en FiveLinux

Post by jgayoso »

Una vez mas gracias... Antonio.
Antonio Linares wrote:Si, está bien :-)

Es una forma correcta de hacerlo modal
Post Reply