Anidar una DIALOG en otro Control

Post Reply
User avatar
Xevi
Posts: 168
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Anidar una DIALOG en otro Control

Post by Xevi »

¿Se puede hacer una ventana que sea parte/objeto de otro objeto???

Así pues... lo que pretendo es que una DIALOG esté incrustado en un Panel u otro DIALOG, por ejemplo y que cuando se "mueva" ese objeto "padre" afecte a la misma como otro objeto interior encapsulado.

Code: Select all

#include "fivewin.ch"

function Main()

   local oDlg, oFld

   DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" ;
      FROM 5, 5 TO 35, 85//20, 49

   oFld := TFoldereX():New( 0.5, 1,,, oDlg,, .F., .F., {"Uno","Dos","Tres","Cuatro","Cinco","Seis"} )
      
   @ 1, 1 BUTTON "&Hello" OF oFld:aDialogs[ 1 ] ;
     ACTION MsgInfo( "Hello world!" )

   @ 11.7, 5  BUTTON "New Dialog" OF oDlg ACTION NewDialog( oDlg )
   @ 11.7, 20 BUTTON "Ok" OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg //CENTERED 

return nil


function NewDialog( oBjt )
   Local oDlgNew

   DEFINE DIALOG oDlgNew TITLE "New Dialog" PIXEL;
      FROM oBjt:nTop + oBjt:nHeight -350, oBjt:nLeft + objt:nWidth -300 TO ;
           oBjt:nTop + oBjt:nHeight -40,  oBjt:nLeft + objt:nWidth -15 ;
           OF oBjt //La idea seria que esta ventana fuera un objeto más de oBjt

   ACTIVATE DIALOG oDlgNew NOWAIT 

return Nil
 
Gracias.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
Xevi
Posts: 168
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Anidar una DIALOG en otro Control

Post by Xevi »

¿?¿?
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Anidar una DIALOG en otro Control

Post by cnavarro »

Xevi, prueba asi

Code: Select all


function NewDialog( oBjt )

   Local oDlgNew
   local oFldr
   
   DEFINE DIALOG oDlgNew TITLE "New Dialog" PIXEL ;
      FROM oBjt:nTop + oBjt:nHeight - 350, oBjt:nLeft + objt:nWidth - 300 TO ;
           oBjt:nTop + oBjt:nHeight - 45,  oBjt:nLeft + objt:nWidth - 25 ;
           OF oBjt STYLE nOR( WS_CLIPCHILDREN, WS_BORDER )
// o asi
//           OF oBjt STYLE nOR( WS_CHILD, WS_CLIPCHILDREN, WS_BORDER )
// o
//           OF oBjt STYLE nOR( WS_OVERLAPPEDWINDOW, WS_CHILD ) 
//
//https://msdn.microsoft.com/es-es/library/windows/desktop/ms632600(v=vs.85).aspx

   oFldr := TFolderEx():New( 0, 0, 600, 250, oDlgNew,, .T., .F., ;
            {"Prime","Segu","Terce","Quart","Five"},,, 0,,,,, .F., 0,,, .F., "TOP",,, .F.,,, .F.,, .F.,, "oFldr" )

   ACTIVATE DIALOG oDlgNew NOWAIT VALID .F.

return Nil

//----------------------------------------------------------------------------//

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply