Acerca MDI
- Raymundo Islas M.
- Posts: 592
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Acerca MDI
Hola a todos
Necesito hacer algunas cosillas en MDI, alguno de uds tendra algo de informacion, manuales, ejemplos que quieran compartir ?
He checado los archivos en SAMPLES y uno que otro archivo que he encontrado, pero me gustaria tener un poquitin mas.
Gracias anticipadas
Saludos
Necesito hacer algunas cosillas en MDI, alguno de uds tendra algo de informacion, manuales, ejemplos que quieran compartir ?
He checado los archivos en SAMPLES y uno que otro archivo que he encontrado, pero me gustaria tener un poquitin mas.
Gracias anticipadas
Saludos
FWH 10.6 + xHarbour + Borland 582
- Antonio Linares
- Site Admin
- Posts: 42418
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 14 times
- Been thanked: 48 times
- Contact:
Raymundo
A mi me va bien así:
1º Declaro como locales:
2º Declaro la Ventana MDICHILD así:
3º Para activarla lo hago así, teniendo en cuenta cerrar los alias mediante el Valid(), y si hemos utilizado un listbox, ése area lo cierro con él:
Luego ya en la operativa para comprobar si una ventana está abierta hago:
y la funcion es:
Y tienes que tener en cuenta que si abres varias ventanas las bases de datos tienen que tener un alias distinto cada vez que abras una nueva.
Yo lo hago así:
A mi me va bien de momento así
No se si ésto es lo que pedías, y perdona que la indentación sea un churro, pero en mi procesador de textos me sale bien.
Saludos
Jose Luis
A mi me va bien así:
1º Declaro como locales:
Code: Select all | Expand
local hdc :=CreateDc("DISPLAY","","")
local nHor:=GetDeviceCaps(hdc,8)
local nVer:=GetDeviceCaps(hdc,10)
2º Declaro la Ventana MDICHILD así:
Code: Select all | Expand
DEFINE WINDOW oDlg MDICHILD ;
OF Publicas:oWPpal;
FROM 30+(len(Publicas:oWPpal:oWndclient:aWnd)*15),30+(len(Publicas:oWPpal:oWndclient:aWnd)*15);
TO nver-160+(len(Publicas:oWPpal:oWndclient:aWnd)*15),nHor-30+(len(Publicas:oWPpal:oWndclient:aWnd)*15);
COLOR CLR_BLACK,CLR_WHITE;
PIXEL
3º Para activarla lo hago así, teniendo en cuenta cerrar los alias mediante el Valid(), y si hemos utilizado un listbox, ése area lo cierro con él:
Code: Select all | Expand
ACTIVATE WINDOW oDlg ;
ON INIT oLbx:SetFocus();
ON PAINT ( oLbx:Refresh(),;
oLbx:nWidth:=oDlg:nWidth-10 ,;
oLbx:nHeight:=oDlg:nHeight-82 ,;
oTab:nWidth:=oDlg:nWidth-10 ,;
oTab:nTop:=oDlg:nHeight-52 ) ;
MAXIMIZED;
VALID ((aAlias[21])-> ( dbClosearea() ),(aAlias[26])->( dbClosearea() ),;
(aAlias[23])->( dbCloseArea() ),(aAlias[29])-> ( dbCloseArea() ),;
(aAlias[2])-> ( dbCloseArea() ),oLbx:lCloseArea(),.t. )
Luego ya en la operativa para comprobar si una ventana está abierta hago:
Code: Select all | Expand
if AbiertaVentana( cTitulo )
return NIL
endif
y la funcion es:
Code: Select all | Expand
FUNCTION AbiertaVentana ( cTitulo )
***********************************
local lAbierta:=.f.
local i
if len( Publicas:oWPpal:OwndClient:aWnd ) <> 0
for i = 1 to len( Publicas:oWPpal:oWndClient:aWnd )
if Publicas:oWPpal:OwndClient:aWnd[i]:ctitle = cTitulo
Publicas:oWPpal:OwndClient:aWnd[i]:normal()
lAbierta:=.t.
endif
next
endif
return lAbierta
Y tienes que tener en cuenta que si abres varias ventanas las bases de datos tienen que tener un alias distinto cada vez que abras una nueva.
Yo lo hago así:
Code: Select all | Expand
Function CargaAlias
*******************
return { ;
cGetNewAlias( "ARTICULO" ),; // 1
cGetNewAlias( "MUNICI" ) ,; // 2
cGetNewAlias( "PROVIN" ) ,; // 3
cGetNewAlias( "PROPIE" ) ,; // 4
cGetNewAlias( "SEAT1" ) ,; // 5
cGetNewAlias( "RAPPEL" ) ,; // 6
cGetNewAlias( "EQUIPO" ) ,; // 7
cGetNewAlias( "REFEREN" ) ,; // 8
cGetNewAlias( "MATERIAL" ),; // 9
cGetNewAlias( "VEHICULO" ),; // 10
cGetNewAlias( "TIPOS" ) ,; // 11
cGetNewAlias( "CANON" ) ,; // 12
cGetNewAlias( "TEXTOS" ) ,; // 13
cGetNewAlias( "IMAGEN" ) ,; // 14
,; // 15
,; // 16
,; // 17
cGetNewAlias( "PARTE" ) ,; // 18
cGetNewAlias( "FIESTAS" ) ,; // 19
cGetNewAlias( "VACAS" ) ,; // 20
cGetNewAlias( "PROVE" ) ,; // 21
cGetNewAlias( "FACTURA" ) ,; // 22
cGetNewAlias( "ALMACEN" ) ,; // 23
cGetNewAlias( "ALBARAN" ) ,; // 24
cGetNewAlias( "EXTRAS" ) ,; // 25
cGetNewAlias( "CONDUC" ) ,; // 26
cGetNewAlias( "GASTOS" ) ,; // 27
cGetNewAlias( "REEMBOL" ) ,; // 28
cGetNewAlias( "RUTA" ) ,; // 29
cGetNewAlias( "AVISOS" ) ,; // 30
cGetNewAlias( "NALBARAN" ) ; // 31
}
Code: Select all | Expand
function cGetNewAlias( cAlias )
*******************************
local cNewAlias, nArea := 1
if Select( cAlias ) != 0
while Select( cNewAlias := ( cAlias + ;
StrZero( nArea++, 2 ) ) ) != 0
end
else
cNewAlias = cAlias
endif
A mi me va bien de momento así
No se si ésto es lo que pedías, y perdona que la indentación sea un churro, pero en mi procesador de textos me sale bien.
Saludos
Jose Luis
- Raymundo Islas M.
- Posts: 592
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Hola Jose Luis :
Muchas gracias por compartir tu metodo MDI, empezare a hacer pruebas sobre el.
Hola Antonio :
Pasa lo siguiente, tengo una aplicacion practicamente terminada y debido a algunas sugerencias tanto de los clientes como propias, he determinado que tengo que convertirla a MDI.
Asi que, esa es la situacion tengo que ver antes de meterle mano a las modificaciones, todo lo que tengo que considerar que y que no debo cambiar, etc.
Saludos
Muchas gracias por compartir tu metodo MDI, empezare a hacer pruebas sobre el.
Hola Antonio :
Pasa lo siguiente, tengo una aplicacion practicamente terminada y debido a algunas sugerencias tanto de los clientes como propias, he determinado que tengo que convertirla a MDI.
Asi que, esa es la situacion tengo que ver antes de meterle mano a las modificaciones, todo lo que tengo que considerar que y que no debo cambiar, etc.
Saludos
FWH 10.6 + xHarbour + Borland 582
Hola Raymundo:
Adjunto te dejo unos manuales de MDI al 100% que nos pasaron en un
curso de Argentina, del grupo puertosur.
Lo hicieron Eduardo Rizzolo y Victor Tomas.
Espero que te sirvan son muy buenos.
Pueden bajarlos de aqui.
http://rapidshare.com/files/29290837/Md ... _.rar.html
Saludos,
Adjunto te dejo unos manuales de MDI al 100% que nos pasaron en un
curso de Argentina, del grupo puertosur.
Lo hicieron Eduardo Rizzolo y Victor Tomas.
Espero que te sirvan son muy buenos.
Pueden bajarlos de aqui.
http://rapidshare.com/files/29290837/Md ... _.rar.html
Saludos,
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
- Raymundo Islas M.
- Posts: 592
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
JoseLuis wrote:3º Para activarla lo hago así, teniendo en cuenta cerrar los alias mediante el Valid(), y si hemos utilizado un listbox, ése area lo cierro con él:Code: Select all | Expand
ACTIVATE WINDOW oDlg ;
ON INIT oLbx:SetFocus();
ON PAINT ( oLbx:Refresh(),;
oLbx:nWidth:=oDlg:nWidth-10 ,;
oLbx:nHeight:=oDlg:nHeight-82 ,;
oTab:nWidth:=oDlg:nWidth-10 ,;
oTab:nTop:=oDlg:nHeight-52 ) ;
MAXIMIZED;
VALID ((aAlias[21])-> ( dbClosearea() ),(aAlias[26])->( dbClosearea() ),;
(aAlias[23])->( dbCloseArea() ),(aAlias[29])-> ( dbCloseArea() ),;
(aAlias[2])-> ( dbCloseArea() ),oLbx:lCloseArea(),.t. )
Además de tener en cuenta de que si en una ventana MDI cargas todos los campos de un registro, alteras alguno y grabas TODO el registro, si esta misma DBF (aún distinta area de trabajo y alias) se está utilizando en otra MDI y haces lo mismo con otro de sus campos, se te va a armar un pollo de coj&%$·es. (ejemplo->campo numerador de facturas y campo numerador de movimientos)
Justo ahora acabo de encontrar un fallo así en una aplicación a medio terminar; llevo casi dos días con él y son las 2 de la mañana, pero aun así estoy contento y me gusta MDI. El usuario una vez acostumbrado lo agradece.
El método que te propone José Luís es muy parecido al que yo uso y va de perlas.
Saludos
Carlos G.
- joseluisysturiz
- Posts: 2064
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Ando tambien en algo de MDI, sera que me pudieras enviar esa guia JCARO a mi privado, trate de descargarlo pero me fue imposible... muy agradecido... joseluisysturiz@yahoo.com Saludos
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: Acerca MDI
Buenas noches
¿Alguien que tenga los manuales MDI me los podria mandar a mi correo por favor?.
interwin_ags@hotmail.com
De antemano muchas gracias.
¿Alguien que tenga los manuales MDI me los podria mandar a mi correo por favor?.
interwin_ags@hotmail.com
De antemano muchas gracias.
- FranciscoA
- Posts: 2162
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Acerca MDI
Buenas noches amigos.
Yo también solicito muy amablemente esos manuales, si alguno de ustedes lo tiene. En estos días he quedado atorado con esto de MDI, específicamente con los Dialogs NoWait.
Mi Email: falegria230349@yahoo.es
Saludos.
Yo también solicito muy amablemente esos manuales, si alguno de ustedes lo tiene. En estos días he quedado atorado con esto de MDI, específicamente con los Dialogs NoWait.
Mi Email: falegria230349@yahoo.es
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- FranciscoA
- Posts: 2162
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Acerca MDI
Hola interwin, te he enviado TODO lo que encontré en internet sobre MDI en fivewin. Todos los escritos dicen muy poco al respecto. No encontré ningún ejemplo contundente. De todos modos, espero te sirvan.
Por otro lado, creo que deberías identificarte en poco mejor, para poder llamarte por tu nombre propio.
Saludos.
Por otro lado, creo que deberías identificarte en poco mejor, para poder llamarte por tu nombre propio.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql