Page 1 of 1

Anidar una DIALOG en otro Control

PostPosted: Thu Dec 28, 2017 1:06 pm
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  Expand view

#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.

Re: Anidar una DIALOG en otro Control

PostPosted: Tue Jan 02, 2018 5:21 pm
by Xevi
¿?¿?

Re: Anidar una DIALOG en otro Control

PostPosted: Tue Jan 02, 2018 6:02 pm
by cnavarro
Xevi, prueba asi

Code: Select all  Expand view


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

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