FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Anidar una DIALOG en otro Control
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Anidar una DIALOG en otro Control
Posted: Thu Dec 28, 2017 01:06 PM
¿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 (fw): Select all Collapse
#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!!!
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: Anidar una DIALOG en otro Control
Posted: Tue Jan 02, 2018 05:21 PM

¿?¿?

Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Anidar una DIALOG en otro Control
Posted: Tue Jan 02, 2018 06:02 PM
Xevi, prueba asi

Code (fw): Select all Collapse
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

Continue the discussion