FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Dialogos NoWait
Posts: 38
Joined: Thu Oct 13, 2005 09:38 AM
Dialogos NoWait
Posted: Thu Mar 31, 2011 02:52 PM

Saludos:
Estoy preparando un programa en el que quiero usar dialogos NOWAIT, pero me surge un problema.
Hay una funcion en concreto en la que depende de una variable que se le pasa, debera abrir el dialogo como NOWAIT o no.

Hasta ahora lo he resuelto asi,

MiFuncion(oWin,lSel)

DEFINE DIALOG oDlg RESOURCE "MiVentana" OF oWin
*
Los objetos van aqui.
*
IF lSel
ACTIVATE DIALOG CENTER
ELSE
ACTIVATE DIALOGO CENTER NOWAIT
ENDIF

Existe alguna funcion de los dialogos en la que se pueda indicar si es NOWAIT o NO.

Algo asi como oDlg:lNowait:=.f.

Gracias de antemano por la ayuda.
Un saludo

Un saludo
Alfonso Larrinaga
info@bsinformatica.net
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Dialogos NoWait
Posted: Thu Mar 31, 2011 02:59 PM
Saludos


podrias usar

Code (fw): Select all Collapse
oDlg:Activate( , , , , , lSel )


puedes mirar dentro de fivewin.ch o dentro de dialog.prg para que veas cada uno de los parametros
Posts: 38
Joined: Thu Oct 13, 2005 09:38 AM
Re: Dialogos NoWait
Posted: Thu Mar 31, 2011 07:07 PM
Daniel gracias por tu ayuda
Hice tal como me dijiste y funciona, no obstante ahora me encuentro con otro problema.
¿Como utilizo bValid y bInit, dentro de Activate()?

He hecho lo siguiente pero me da error al cargar el dialogo.
Error description: Error BASE/1002 No existe el alias: Cliente1

// Asi sí me funciona
ACTIVATE DIALOG oDlg CENTER ON INIT (lNew:=.f.,oDlg:aEvalWhen(),oRad:SetOption(2),CliAlta(dCli,lAlt,oBrw), ;
IIF((dCli)->(EOF()),EVAL(bCliVer),(oFol:SetOption(1),oFol:={.t.,.f.,.f.,.f.,.f.},oBrw:SetFocus()))) ;
VALID (NoEscape() .AND. CierraCli(dCli,dAge,dBco,dGpo,dFpg,oBrw)) ;
NOWAIT

// Asi no me funciona
bInit:={|| (lNew:=.f.,oDlg:aEvalWhen(),oRad:SetOption(2),CliAlta(dCli,lAlt,oBrw),IIF((dCli)->(EOF()),EVAL(bCliVer),(oFol:SetOption(1),oFol:={.t.,.f.,.f.,.f.,.f.},oBrw:SetFocus())))}
bValid:={|| (NoEscape() .AND. CierraCli(dCli,dAge,dBco,dGpo,dFpg,oBrw)) }
lCentered:=.t.
oDlg:Activate( , , ,lCentered,EVAL(bValid),lSel,EVAL(bInit) )


Gracias de antemano.
Un saludo
Alfonso Larrinaga
info@bsinformatica.net
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Dialogos NoWait
Posted: Thu Mar 31, 2011 07:13 PM

Alfonso

pasas el codeblock no el "eval" de ellos, la clase se encarga internamente de evaluarlos

oDlg:Activate( , , ,lCentered, bValid, lSel, bInit )

Posts: 38
Joined: Thu Oct 13, 2005 09:38 AM
Re: Dialogos NoWait
Posted: Thu Mar 31, 2011 07:28 PM

Daniel:
Perfecto, muchas gracias por tu tiempo.

Un saludo

Un saludo
Alfonso Larrinaga
info@bsinformatica.net

Continue the discussion