Una de dialogos

Una de dialogos

Postby jmua » Wed Jun 21, 2006 6:22 am

Hola foro.
A ver si alguien me puede ayudar.
Tengo un problema y es que abro mi aplicacion con un DIALOG, el cual
es la ventana principal de la app.
En el dialogo tengo un menu y una serie de botones con los cuales
accedo al resto de la app.
hasta aqui bien. Pulso un boton y abro abro otro dialogo que despues
minimizo para poder acceder a una consulta en otro dialogo, pero no me
deja mientras no cierre el anterior.
Como puedo hacer para poder tener abiertos varios dialogos a la vez.
Todos los dilog que utilizo estan en un fichero de recursos RES.

Muchas gracias
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
 
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am

Postby Antonio Linares » Wed Jun 21, 2006 6:36 am

José,

Utiliza la cláusula OF para especificar quien es el "padre" de un determinado diálogo:

DEFINE DIALOG oDlg ... OF oWnd

Si ambos diálogos tienen como "padre" la ventana principal, entonces podrás pasar de un diálogo a otro.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42127
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jmua » Wed Jun 21, 2006 8:59 am

Antonio esto es lo que hago pero no me deja abrir otro dialogo mientras tenga el anterior abierto
Mi main dialog es asi:
DEFINE DIALOG oWnd RESNAME "MENU" FONT oFont ICON oIcon TITLE cTitle
STYLE
WS_POPUP|DS_MODALFRAME|DS_CONTEXTHELP|DS_3DLOOK|
WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_VISIBLE

Y los dialogos hijos son:
DEFINE DIALOG oDlg RESNAME "MANTEGEN" FONT oFont ICON oIcon OF oWnd
STYLE WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_VISIBLE

Saludos

Antonio Linares wrote:José,

Utiliza la cláusula OF para especificar quien es el "padre" de un determinado diálogo:

DEFINE DIALOG oDlg ... OF oWnd

Si ambos diálogos tienen como "padre" la ventana principal, entonces podrás pasar de un diálogo a otro.
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
 
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am

Postby jmua » Wed Jun 21, 2006 3:37 pm

_.

Esto funciona Muchas gracias

Saludos

_ wrote:Jose activa tus dialogos hijos con la clausula NoWait

Define dialog oDlg Resource "DL_HIJO"

Activate dialog oDlg NOWAIT

espero te sirva

salu2
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
 
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am

Postby Antonio Linares » Wed Jun 21, 2006 4:30 pm

José Martin,

Tienes que comprender la diferencia entre caja de diálogo modales y no modales, y por otra parte el concepto de "padre" de un determinado diálogo. Si no especificas la cláusula OF, FiveWin usará como "padre" la ventana ó diálogo que en ese momento este seleccionada.

Un diálogo modal no permite cambiar a otro diálogo modal, salvo que sea "hijo" de este anterior.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42127
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jmua » Thu Jun 22, 2006 8:11 am

Antonio.
Ya comprendo. Ahora te hago otra pregunta.
*-----------------------------------------------------------
Entro en la aplicación
Voy a mCliente.prg a Consultar la tabla Clientes
Una vez en clientes minimizo la ventana
una vez minimizada me voy a consulta almacen
Consulto almacen y cierro la ventana
Me voy a restaurar le ventana de clientes y me da un casque
que dice no existe el alias "CLI"
Por que hace esto?
Que hago mal?
Debo de abrir las tablas en la ventana principal ?

Gracis de antemano
Un saludo


//....................................................
/MyAplic.Prg
*..........
#Include "FiveWin.Ch"
*...........
Static oWndMain
*...........
Function MainAplic()
Local bTnCli,bTnalm,bTnPob,oFont
DEFINE DIALOG oWndMain RESOURCE 'Principal' FON oFont

REDEFINE BUTTON BtnCli ID 201 OF oWndMain FONT oFont ;
ACTION (ConsultaCli(oWndMain))
//Voy a mCliente.prg a Consultar la tabla Clientes

REDEFINE BUTTON BtnAlm ID 202 OF oWndMain FONT oFont ;
ACTION (ConsultaAlm(oWndMain)
//Voy a mAlmacen.prg a Consultar la tabla Almacen

REDEFINE BUTTON BtnPob ID 203 OF oWndMain FONT oFont ;
ACTION (ConsultaPob(oWndMain)
//Voy a mPoblaci.prg a Consultar la tabla poblaci

REDEFINE BUTTON BtnEnd ID 204 OF oWndMain FONT oFont ;
ACTION (oWndMain:End())

ACTIVATE DIALOG oWndMain CENTERED
Return Nil
-----------------------------------------------------
-----------------------------------------------------
#Include "FiveWin.Ch"
*Mcliente.Prg
Function ConsultaCli(oWndMain)
Local oDlgCli,oBtend,oLbx,oFont,...etc.
If Abretablas()
Select('Cli')
DEFINE DIALOG oDlgCli RESOURCE 'Clientes' FONT oFont OF oWndMain

REDEFINE LISTBOX oLbx ;
FIELDS ;
Cli->CLICODIGO ,;
Cli->CLINOMBRE ,;
Cli->CLIDIRECC ,;
Cli->CLIPOBLAC ,;
Cli->CLIPOSTAL ,;
Cli->CLIPROVIN ,;
Cli->CLIDNINIF ;
HEADERS ;
"Código","Empresa","Dirección" ,;
"Población","C.Postal","Provincia","Dni / Nif" ;
FIELDSIZES 50,180,180,180,50,100,100 ;
ID 101 OF oDlgcli ;
UPDATE
oLbx:nLineStyle := 3
oLbx:bChange := {||oLbx:Refresh()}

REDEFINE BUTTON oBtEnd ID 102 OF oDlgCli FONT oFont ;
ACTION (oDlgCli:End())

ACTIVATE DIALOG oDlgCli CENTERED NOWAIT

oDlg:End()
oFont:End()

Dbcloseall()
Else
MsgInfo('Imposible abrir tablas','ERROR')
Endif
Return Nil
-----------------------------------------------------
-----------------------------------------------------
*MAlmacen.Prg
#Include "FiveWin.Ch"
Function ConsultaCli(oWndMain)
Local oDlgAlm,oBtend,oLbx,oFont...etc.
If Abretablas()
DEFINE DIALOG oDlgAlm RESOURCE 'Almacen' FONT oFont OF oWndMain

Select('Alm')
REDEFINE LISTBOX oLbx ;
FIELDS ;
Alm->CLIENTE ,;
Alm->ARTICULO ,;
Alm->DESCRIPC ,;
Dtoc(Alm->FECHA_ENT) ,;
Transform(Alm->CANTIDAD,'@Z 999,999') ;
HEADERS ;
"Cliente","Articulo","Descripción","Cantidad" ;
ID 101 OF oDlgAlm;
UPDATE
oLbx:nLineStyle := 3
oLbx:bChange := {||oLbx:Refresh()}


REDEFINE BUTTON oBtEnd ID 102 OF oDlgAlm FONT oFont ;
ACTION (oDlgAlm:End())


ACTIVATE DIALOG oDlgAlm CENTERED NOWAIT

oDlg:End()
oFont:End()

Dbcloseall()
Else
MsgInfo('Imposible abrir tablas','ERROR')
Endif
Return Nil
//--------------------------------------------------------------

Antonio Linares wrote:José Martin,

Tienes que comprender la diferencia entre caja de diálogo modales y no modales, y por otra parte el concepto de "padre" de un determinado diálogo. Si no especificas la cláusula OF, FiveWin usará como "padre" la ventana ó diálogo que en ese momento este seleccionada.

Un diálogo modal no permite cambiar a otro diálogo modal, salvo que sea "hijo" de este anterior.
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
 
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am

Postby Antonio Linares » Thu Jun 22, 2006 10:06 am

José Martin,

Cuando usas:

ACTIVATE DIALOG oDlgAlm CENTERED NOWAIT

la ejecución de la aplicación NO se detiene ahí, por lo que continúa, y unas líneas más adelante tu llamas a DbCloseAll() en donde cierras las bases de datos.

Si usas diálogos no modales, entonces las bases de datos no las puedes cerrar ahí.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42127
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 53 guests