Folder en Ventana Principal ¡¡¡Ayuda!! (Solucionado)

Folder en Ventana Principal ¡¡¡Ayuda!! (Solucionado)

Postby sjingo » Sat Feb 06, 2010 12:24 am

Un saludo amigos

Bueno, me cansé de estar dos días con esto y por eso acudo a ustedes por su ayuda:

Quiero simplemente colocar unos dialogos creados desde recursos en un FOLDER que forma parte de la ventana principal (ojo no es MDI).
Creando el Folder y todos los controles de cada pestaña desde código funciona OK,
Code: Select all  Expand view

         @30,30 FOLDER oFold PROMPT "Datos Gen","Pestaña 2" pixel of oWinGen
         @1,10 GET AODAT[1] VAR aDat[1] OF oFold:adialogs[1] pixel
         @30,10 GET AODAT[2] VAR aDat[2] OF oFold:adialogs[1] pixel


Ahora, creo el folder desde código, pero los controles de cada pesaña he dibujado desde recursos sobre diálogos child, y lo que quiero ahora es pegarlos en el folder creado desde código: para eso hago:
Code: Select all  Expand view

         @30,30 FOLDER oFold PROMPT "Datos Gen","Pestaña 2" pixel of oWinGen
         //Aquí vá mas controles de la ventana
        ACTIVATE window oWinGen ON resize RESIZE_WINDOW2(oWinGen) MAXIMIZED;
        VALID (oCon:Close(),oWVeh:=nil,.t.);
        ON INIT (BUILDFOLDER(oFold:adialogs[1],aodat,adat,aoImg,aImg))
//Aqui colococo los controles de la pestaña y uso la función ChangeParent()
function BuildFolder( oWdestino,aoDat,adat,aoImg,aImg )
    LOCAL oDlg
    DEFINE DIALOG oDlg RESOURCE "DATOS"
    REDEFINE GET AODAT[1] VAR aDat[1] ID 0  of oDlg
    REDEFINE GET AODAT[2] VAR aDat[2] ID 1  of odlg
   ACTIVATE DIALOG oDlg NOWAIT ;
      ON INIT ChangeParent( oDlg, oWdestino )
     
   oDlg:End()  
return nil

 


Los controles se generan bien pero no se puede usar ni los ENTER ni TABS. Ojo todos los controles tienen la propiedad WS_TABSTOP.

He probado de todo lo que puedo, hasta cambie de editor de recursos, pero sigue igual, y mis conocimientos no dan más :oops:
Todos los ejemplos que he visto en SAMPLES funcionan OK, como la de los folders, pero todas se generan sobre un DIALOGO y no sobre una ventana principal, el ejemplo de TESTMDIR.PRG, también funciona bien pero es en una ventana CHILD. La mía no tiene hijas

Reitero que desde código funciona muy bien. Y no quiero hacerlo así. Por favor Auxilio.

Un saludo
Marcelo Jingo
Last edited by sjingo on Tue Feb 09, 2010 10:22 pm, edited 1 time in total.
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Folder en Ventana Principal ¡¡¡Ayuda!!

Postby sjingo » Sun Feb 07, 2010 11:44 pm

Hola de nuevo

Parece que de momento no es posible hacer lo que quiero :( . Y definitivamente construiré todos los controles del folder desde código que así funciona muy bien, hasta ver si en algún momento alguien encuentra la solución a esto. O si ya lo tiene solucionado por favor comparta.

Repito mi problema: Quiero colocar en la ventana principal que no es MDI (oWind:=Twindow:New()) un folder y en éste colocar los diálogos creados desde recursos para su respectiva pestaña.

Saludos
Marcelo Jingo
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Folder en Ventana Principal ¡¡¡Ayuda!!

Postby Antonio Linares » Mon Feb 08, 2010 12:18 pm

Marcelo,

Prueba a usar la claúsula OF al crear el diálogo y no llames a ChangeParent():
Code: Select all  Expand view

DEFINE DIALOG oDlg RESOURCE "DATOS" OF oWnd // ventana principal
...
 
regards, saludos

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

Re: Folder en Ventana Principal ¡¡¡Ayuda!!

Postby sjingo » Mon Feb 08, 2010 2:22 pm

Gracias Antonio por el Interés.

No olvidemos que los diálogos que están en recursos los quiero colocar en cada pestaña del folder el cual ya está en la ventana principal.

Con tu sugerencia estoy colocando el diálogo fuera del folder, lo he probado y se crea el diálogo, los TABS funcionan pero queda detrás del folder.

Como último recurso voy a probar colocando todos los diálogos tanto el del folder como los otros en un Tpanel a ver que pasa, aunque me parece que ya lo probé, tantas cosas que hice que ya no me acuerdo.

En la siguiente imagen ilustro lo que quiero hacer, desde recursos. El ejemplo está hecho en código y todo funciona correcto:
Image
En la ventana principal tengo la barra de herram,un xbrowse, el folder y un TPAnel

Cualquier cosa les comento.

Un saludo

Marcelo Jingo
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Folder en Ventana Principal ¡¡¡Ayuda!!

Postby sjingo » Mon Feb 08, 2010 3:15 pm

Lo intenté una vez más con la sugerencia de Antonio y otras que se me vino a la cabeza, pero nada funciona bien, así que esto lo voy a dejar allí, porque más rápido lo estoy haciendo desde "source code", y el tiempo es nuestro peor enemigo.

Gracias Antonio y a todos por su tiempo.

Saludos

Marcelo Jingo
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Folder en Ventana Principal ¡¡¡Ayuda!!

Postby Antonio Linares » Tue Feb 09, 2010 1:27 am

Marcelo,

Disculpa, no me di cuenta de que el folder es hijo de la ventana principal.

En tal caso tienes el método LoadPages( aResNames, bRedefineControls ) que es precisamente para eso:
Code: Select all  Expand view

oFolder:LoadPages(  { "DATOS" }, { || RedefineLosControles( oFolder ) } )

...

function RedefineLosControles( oFolder )

   REDEFINE GET ... VAR ... ID 0 of oFolder:aDialogs[ 1 ]
   REDEFINE GET ... VAR ... ID 1 of oFolder:aDialogs[ 1 ]
   ...

return nil
 
regards, saludos

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

Re: Folder en Ventana Principal ¡¡¡Ayuda!! (Solucionado)

Postby sjingo » Tue Feb 09, 2010 10:18 pm

Acabo de probarlo y sip :D si se pudo, los TABS ya funcionan, nada más que luego de hacer lo que me dice el Maestro Antonio, se debe mandar a reconstruir las pestañas con oFolder:SetPrompts().
Code: Select all  Expand view
    @30,30 FOLDER oFold ;
    PROMPT "Datos Gen","Pestaña 2" pixel of ::oWinGen
    oFold:aEnable = { .t. ,.t.}
    oFold:LoadPages(  { "DATOS" }, { || RedefineLosControles( oFold,aodat,adat,aoImg,aImg ) } )
    oFold:Setprompts({"Datos Gen","Pestaña2"})
 

Ahora sí a respirar tranquilo, muchísimas gracias Antonio. Seguiré molestando por aquí muy seguido.

Un saludo

Marcelo Jingo
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Folder en Ventana Principal ¡¡¡Ayuda!! (Solucionado)

Postby Antonio Linares » Tue Feb 09, 2010 11:38 pm

Marcelo,

Muy bien! :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 25 guests