1- Estoy trabajando con ventanas MDI y resulta que cuando abro las ventanas estas me salen en la misma posicion, se coloca una sobre la otra; la pregunta es como hago para ir aumentando las coordenadas de las ventanas a medida que se van creando para que se vea como CASCADA?
El codigo de una de las ventanas el es siguiente:
Code: Select all
DEFINE WINDOW oLamcla:oWndChild MDICHILD OF oWnd FROM 3,3 TO 6,6 COLOR "N/W" nomaximize border none ICON "#8009"
oLamcla:oWndChild:bGotFocus = { || oCuadro:SetFocus() }
DEFINE DIALOG oCuadro RESOURCE "orCiudad" OF oLamcla:oWndChild
REDEFINE BTNBMP Btn_Agre ID 4007 OF oCuadro RESOURCE "Bagre" TOOLTIP oLamcla:mTagr NOBORDER ACTION (oLamcla:vgraba:=.t.,oLamcla:autoriza(29))
REDEFINE BTNBMP Btn_Modi ID 4001 OF oCuadro RESOURCE "Bmodi" TOOLTIP oLamcla:mTmod NOBORDER ACTION (oLamcla:vgraba:=.f.,oLamcla:autoriza(30))
REDEFINE BTNBMP Btn_Borr ID 4002 OF oCuadro RESOURCE "Bborr" TOOLTIP oLamcla:mTbor NOBORDER ACTION oLamcla:autoriza(31)
REDEFINE BTNBMP oLamcla:Btn_Imor ID 4004 OF oCuadro RESOURCE "Bimpr" TOOLTIP oLamcla:mTimp NOBORDER ACTION oLamcla:autoriza(32)
REDEFINE BTNBMP Btn_Sali ID 4006 OF oCuadro RESOURCE "Bsalid" TOOLTIP oLamcla:mTsal NOBORDER ACTION (oLamcla:oTbMed:End(),oCuadro:end())
REDEFINE BTNBMP Btn_Limp ID 4010 OF oCuadro RESOURCE "BLimpi" TOOLTIP oLamcla:mTfil NOBORDER ACTION (oLamcla:oC1vg1:=space(100),pArMedi())
REDEFINE COMBOBOX oM1oc1 VAR oM1vc1 PROMPTS oM1lc1 ID 4003 OF oCuadro UPDATE ;
ON CHANGE(IF(oM1vc1="Código",oLamcla:vOrden="m_medida",oLamcla:vOrden:="m_nombre"),(pArMedi()))
REDEFINE GET oC1og1 VAR oLamcla:oC1vg1 ID 4009 OF oCuadro UPDATE VALID(pBusMed(),.T.)
TXBrowse():lHeaders := .T.
oLamcla:oTbMed:GoTop()
oLamcla:oBrwMed := TXBrowse():New( oCuadro )
WITH OBJECT oLamcla:oBrwMed
:CreateHeader()
MySetbrowse( oLamcla:oBrwMed,oLamcla:oTbMed )
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:nColDividerStyle := LINESTYLE_RAISED
:bClrSelFocus := {|| { CLR_WHITE, oLamcla:cClr3 } } //:= {|| { CLR_WHITE, RGB(24, 116, 205) } }
oLamcla:oBrwMed:blDblClick := {|| oLamcla:vgraba:=.f.,oLamcla:autoriza(30)}
oLamcla:oBrwMed:bKeyDown := {|nKey|iif(nKey == 13,(oLamcla:vgraba:=.f.,oLamcla:autoriza(30)),(" "))}
:nHeaderLines := 1
:lColDividerComplete := .t.
:lRecordSelector := .t.
:SetColor(CLR_BLACK, RGB(255,255,235))
:bClrStd := {|| IF( (oLamcla:oTbMed:Recno()%2)==0,{CLR_BLACK,oLamcla:cClr2},{CLR_BLACK,oLamcla:cClr1} ) }
:bClrSel := {|| { CLR_BLACK,oLamcla:cClr7 } }
WITH OBJECT :AddCol()
:cHeader := "Código"
:bStrData := GenCB(oLamcla:oTbMed,1)
:nHeadStrAlign := AL_LEFT
:nDataStrAlign := AL_LEFT
:nWidth := 80
END
WITH OBJECT :AddCol()
:cHeader := "Nombre"
:bStrData := GenCB(oLamcla:oTbMed,2)
:nHeadStrAlign := AL_LEFT
:nDataStrAlign := AL_LEFT
:nWidth := 225
END
WITH OBJECT :AddCol()
:cHeader := "Sigla"
:bStrData := GenCB(oLamcla:oTbMed,3)
:nHeadStrAlign := AL_LEFT
:nDataStrAlign := AL_LEFT
:nWidth := 65
END
:CreateFromResource( 102 )
END
ACTIVATE DIALOG oCuadro NOWAIT CENTERED ON INIT oCuadro:Move( 0, 0 ) VALID (oLamcla:oWndChild:End(), .t. )
oLamcla:oWndChild:nWidth := oCuadro:nWidth+7
oLamcla:oWndChild:nHeight := oCuadro:nHeight+32
oLamcla:oWndChild:cTitle:="Tabla de Medidas"
ACTIVATE WINDOW oLamcla:oWndChild ON INIT oWnd:paint()
Code: Select all
********************************
*GENERA EL MENU DE LA APLICACION
********************************
FUNCTION Menu()
LOCAL oMenu
MENU oMenu
MENUITEM "&Contabilidad"
MENU
MENUITEM "&Catálogos"
MENU
MenuItem "&Terceros" ACTION oLamcla:autoriza(11)
SEPARATOR
MenuItem "C&omprobantes" ACTION oLamcla:autoriza(83)
MenuItem "&Control Documentos" ACTION oLamcla:autoriza(107)
MenuItem "&Otros Conceptos Documentos" ACTION oLamcla:autoriza(147)
SEPARATOR
MenuItem "C&uentas" ACTION oLamcla:autoriza(95)
MenuItem "C&entros de Costo" ACTION oLamcla:autoriza(89)
SEPARATOR
MenuItem "C&iudades" ACTION oLamcla:autoriza(23)
ENDMENU
MENUITEM "Ca&ptura Datos"
MENU
MenuItem "&Comprobantes Varios"
MenuItem "&Ajustes por Inflación"
MENU
MenuItem "&Generar Comprobante de Ajustes"
MenuItem "&Tabla de Porcentaje Mensual"
ENDMENU
ENDMENU
MENUITEM "&Reportes Impresora"
MENU
MenuItem "&Auxiliares" //ACTION oLamcla:autoriza(11)
MenuItem "&Balances" //ACTION oLamcla:autoriza(11)
MenuItem "&Estado de Resultados" //ACTION oLamcla:autoriza(11)
MenuItem "&Libros Oficiales" //ACTION oLamcla:autoriza(11)
MenuItem "C&omprobante de Diario" //ACTION oLamcla:autoriza(11)
MenuItem "C&entros de Costo" //ACTION oLamcla:autoriza(11)
ENDMENU
MENUITEM "C&onciliación Bancaria"
MENUITEM "&Funciones Especiales"
MENU
MenuItem "&Cruce de Catálogo con Movimiento" ACTION oLamcla:autoriza(162)
ENDMENU
SEPARATOR
MENUITEM "&Salir" ACTION oWnd:End()
ENDMENU
MENUITEM "&Inventarios"
MENU
MENUITEM "&Catálogos"
MENU
MENUITEM "&Terceros" ACTION oLamcla:autoriza(11)
MenuItem "C&iudades" ACTION oLamcla:autoriza(23)
SEPARATOR
MENUITEM "&Unidades de Medida" ACTION oLamcla:autoriza(28)
MENUITEM "&Categorias Artículos" ACTION oLamcla:autoriza(33)
MENUITEM "Nivel &1" ACTION oLamcla:autoriza(38)
MENUITEM "Nivel &2" ACTION oLamcla:autoriza(43)
MENUITEM "Nivel &3" ACTION oLamcla:autoriza(48)
MENUITEM "&Tallas" ACTION oLamcla:autoriza(53)
MENUITEM "C&olores" ACTION oLamcla:autoriza(58)
MENUITEM "Cat&egorias Tallas" //ACTION LamCata()
MENUITEM "Listas de &Precios" ACTION oLamcla:autoriza(68)
MENUITEM "&Artículos" ACTION oLamcla:autoriza(77)
SEPARATOR
MENUITEM "&Bodegas" ACTION oLamcla:autoriza(63)
ENDMENU
MENUITEM "&Kardex de Entradas y Salidas" ACTION oLamcla:autoriza(999)
MENUITEM "&Captura Datos"
MENU
MenuItem "En&tradas Directas" ACTION oLamcla:autoriza(999)
MenuItem "&Salidas Directas" ACTION oLamcla:autoriza(999)
MenuItem "&Traslado Entre Bodegas" ACTION oLamcla:autoriza(999)
SEPARATOR
MenuItem "&Saldos Iniciales" ACTION oLamcla:autoriza(141)
ENDMENU
MENUITEM "&Reporte de Inventarios" ACTION TEMPO()
MENU
MenuItem "&Movimiento Bodega" ACTION oLamcla:autoriza(146)
MenuItem "I&nventarios Por Grupo" ACTION oLamcla:autoriza(999)
ENDMENU
ENDMENU
MENUITEM "&Facturación"
MENU
MENUITEM "C&aptura Datos"
MENU
MENUITEM "&Pedidos"
Menu
MenuItem "Pedidos - Control Bar" ACTION oLamcla:autoriza(101)
MenuItem "Pedidos en Bloque"
EndMenu
MenuItem "&Factura" ACTION oLamcla:autoriza(124)
MenuItem "&Remisión" ACTION oLamcla:autoriza(155)
SEPARATOR
MENUITEM "&Saldos Iniciales" ACTION TEMPO()
MENU
MenuItem "&Saldos Iniciales Remisiones" ACTION oLamcla:autoriza(16)
MenuItem "&Saldos Iniciales Facturas" //ACTION LamIniFa()
ENDMENU
ENDMENU
MENUITEM "&Consultas Facturación"
MENU
MenuItem "&Factura" ACTION TEMPO()
MenuItem "&Remisión" ACTION TEMPO()
ENDMENU
MENUITEM "&Reportes Facturación"
MENU
MenuItem "&Factura" ACTION TEMPO()
MenuItem "&Remisión" ACTION TEMPO()
SEPARATOR
MenuItem "Ventas por &Día" ACTION oLamcla:autoriza(132)
SEPARATOR
MenuItem "Codigos de Barras" ACTION oLamcla:autoriza(131)
ENDMENU
ENDMENU
MenuItem "&Cuentas Por Pagar"
MENU
MenuItem "&Cuentas por Pagar (Compras)" ACTION oLamcla:autoriza(133)
MenuItem "&Pago a Proveedores" ACTION TEMPO()
MenuItem "&Cancelación de Pagos" ACTION TEMPO()
MenuItem "&Estado de Cuenta del Proveedor"
MENU
MenuItem "&General" ACTION TEMPO()
MenuItem "&Detallado" ACTION TEMPO()
ENDMENU
MenuItem "&Reporte de Pagos Realizados" ACTION TEMPO()
MenuItem "&Antiguedad de Saldos" ACTION TEMPO()
ENDMENU
MenuItem "Cuentas Por C&obrar"
Menu
MenuItem "&Pago de Clientes" ACTION TEMPO()
MenuItem "&Cancelación de Pagos" ACTION TEMPO()
MenuItem "&Estado de Cuenta del Cliente" ACTION TEMPO()
MenuItem "&Reporte de Pagos Realizados" ACTION TEMPO()
MenuItem "&Antiguedad de Saldos" ACTION TEMPO()
EndMenu
MenuItem "&Parámetros"
Menu
MenuItem "&Catálogo Empresas" ACTION TEMPO()
MenuItem "&Parámetros del Sistema" ACTION TEMPO()
MenuItem "P&orcentajes para Precios" ACTION TEMPO()
EndMenu
MENUITEM "&Utilerías"
MENU
MenuItem "&Calculadora" Message "Activa la Calculadora de Windows" Action (WinExec("CALC.EXE"))
Separator
MenuItem "&Ver Errores" Message "Ver Errores del Sistema" ACTION TEMPO()
ENDMENU
MENUITEM "&Ventanas" WHEN LEN(oWnd:oWndClient:aWnd) > 0 HELP
MENU
MENUITEM "&Anterior" ACTION oWnd:oWndActive:Prev();
WHEN LEN(oWnd:oWndClient:aWnd) > 1
MENUITEM "&Siguiente" ACTION oWnd:NextWindow();
WHEN LEN(oWnd:oWndClient:aWnd) > 1
MENUITEM "&Cerrar" ACTION oWnd:oWndActive:End()
SEPARATOR
MENUITEM "&Minimizar todo" ACTION oWnd:IconizeAll()
MENUITEM "&Restaurar todo" ACTION AEVAL(oWnd:oWndClient:aWnd,{ |oWnd, nPos| oWnd:Restore() })
MENUITEM "C&errar todo" ACTION oWnd:CloseAll();
WHEN LEN(oWnd:oWndClient:aWnd) > 1
ENDMENU
MENUITEM "&Seguridad" HELP
MENU
MENUITEM "Catálogo &Usuarios" //ACTION LamUsua()
MENUITEM "Catálogo &Llaves" ACTION oLamcla:autoriza(112)
SEPARATOR
MENUITEM "Catálogo &Autorizaciones" ACTION oLamcla:autoriza(121)
SEPARATOR
MENUITEM "&Seguridad Captura Datos" //ACTION LamLlav()
EndMenu
MENUITEM "&Ayuda" HELP
MENU
MENUITEM "&Contenido..."
MENUITEM "&Buscar Ayuda Sobre..."
MENUITEM "&Usar la Ayuda..."
Separator
MENUITEM "&Acerca de..."
EndMenu
ENDMENU
RETURN(oMenu)
De antemano gracias