Anidar una DIALOG en otro Control

Post Reply
User avatar
Xevi
Posts: 174
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 | Expand


#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: 174
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: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: Anidar una DIALOG en otro Control

Post by cnavarro »

Xevi, prueba asi

Code: Select all | Expand



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

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

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Post Reply