Page 1 of 1

Entorno MDI y ExplBar

PostPosted: Sun Dec 24, 2017 4:24 pm
by Xevi
Resulta que empezando la aplicación, usando entorno MDI, me atranco con un problema, y no pequeño.

Defino la WINDOW principal como MDI y las demás MDICHILD... hasta ahí correcto.
El tema que me deja atorado, es que en la ventana principal, si tengo algun control como por jemplo una ExplBar, esa no está "habilitada" no se puede utilizar, es como si se dehabilitaran los controles (también los Buttons y no he probado, pero igual los GETs/EDITs) al estar en MDI.
No así las BUTTONBAR... esas si estan "operativas"

Y... otra cosa añadida, si se crea una ventana hija y se arrastra por la ventana, el contenido en ella es "eliminado" - "borrado", como si pasaras una goma por donde se pasea la ventana hija. (arrastrar la ventana por encima de la ExplBar y vereis que la va borrando por donde se situa la ventana hija)

Alguna razón???
Algo que se me pase y deba de corregir???

Gracias, y Felices Fiestas.

aquí el código.
Code: Select all  Expand view

#include "FiveWin.ch"

static oWnd

function Main()

   local oBar

   DEFINE WINDOW oWnd MDI

   DEFINE BUTTONBAR oBar OF oWnd 2007 SIZE 50, 50

   DEFINE BUTTON OF oBar ACTION VentanaHija()

   DEFINE MSGBAR OF oWnd PROMPT "Ejemplo MDI" 2007

   WITH OBJECT TExplorerBar():New( oBar:nHeight, 0, 325, oWnd:nHeight -70, oWnd )
   :AddPanel( "PANEL 1 'primero'" )
   :AddPanel( "PANEL 2 'segundo'" )
   END WITH


   ACTIVATE WINDOW oWnd

return nil

function VentanaHija()

   local oWndChild, oFolder

   DEFINE WINDOW oWndChild MDICHILD OF oWnd FROM 0, 50 TO 20, 40

   @ 0, 0 FOLDER oFolder OF oWndChild

   oWndChild:oClient = oFolder

   ACTIVATE WINDOW oWndChild

return nil
 

Re: Entorno MDI y ExplBar

PostPosted: Tue Dec 26, 2017 10:33 am
by Antonio Linares
Xevi,

Code: Select all  Expand view
#include "FiveWin.ch"

static oWnd

function Main()

   local oBar, oExplBar

   DEFINE WINDOW oWnd MDI

   DEFINE BUTTONBAR oBar OF oWnd 2007 SIZE 50, 50

   DEFINE BUTTON OF oBar ACTION VentanaHija()

   DEFINE MSGBAR OF oWnd PROMPT "Ejemplo MDI" 2007

   WITH OBJECT oExplBar := TExplorerBar():New( 0, 0, 250, oWnd:oWndClient:nHeight, oWnd )
      :AddPanel( "PANEL 1 'primero'" )
      :AddPanel( "PANEL 2 'segundo'" )
   END WITH

   oWnd:oLeft = oExplBar

   ACTIVATE WINDOW oWnd

return nil

function VentanaHija()

   local oWndChild, oFolder

   DEFINE WINDOW oWndChild MDICHILD OF oWnd FROM 0, 50 TO 20, 40

   @ 0, 0 FOLDER oFolder OF oWndChild

   oWndChild:oClient = oFolder

   ACTIVATE WINDOW oWndChild

return nil


Image

Re: Entorno MDI y ExplBar

PostPosted: Tue Dec 26, 2017 5:30 pm
by Xevi
Antonio, entiendo pues que se debe "anclar" la ExplBar para que forme parte "fija" de la ventana principal.

Entonces, para poner algun botón o demás control, debo crear un panel, por ejemplo y anclarlo a la ventana y en ese panel, colocar los controles que desee ver e interauctuar en esa ventana.

Re: Entorno MDI y ExplBar

PostPosted: Tue Dec 26, 2017 6:15 pm
by Antonio Linares
Si, así es :-)

Revisa también los ejemplos FWH\samples\layout...prg que es otra forma más poderosa aún de reorganización de los controles dentro de las ventanas