Page 1 of 1

La parte derecha de un SPLITTER vertical

Posted: Thu Jun 21, 2007 11:19 am
by JmGarcia
Quisiera poner en una ventana (MDICHILD) un splitter y a la izquierda un arbol (tree) y a la derecha un browse.
La parte del tree ya es mas o menos dominada, pero en el hueco de la derecha quisiera poner un browse (listbox).

Tengo este codigo:

Code: Select all

DEFINE WINDOW owVerTree TITLE "Prueba"  MDICHILD OF owPrincipal
HacerArbol(@oTree,@oItem)
@ 29, 200 SPLITTER oSplit VERTICAL _3DLOOK PREVIOUS CONTROLS oTree SIZE 4, 200 PIXEL OF owVerTree

/******************************************
ESTE ES EL BROWSE, ¿ Como lo pongo a la derecha ?
@ 0,0 LISTBOX obFichero FIELDS NOMBRE,APELLIDOS OF  ¿ owVerTree ? SIZE 600,400
******************************************/

ACTIVATE WINDOW owVerTree ON RESIZE oSplit:AdjClient()
Gracias.

Posted: Thu Jun 21, 2007 8:33 pm
by Francisco Horta
Jim,
en el splitter usa HINDS CONTROLS oMiObjeto
esta se usa para los controles a la derecha del splitter o por abajo
salu2
paco

Posted: Thu Jun 21, 2007 8:46 pm
by JmGarcia
Francisco Horta wrote:en el splitter usa HINDS CONTROLS oMiObjeto
esta se usa para los controles a la derecha del splitter o por abajo
Entonces pogo esto:

@ 29, 200 SPLITTER oSplit VERTICAL _3DLOOK PREVIOUS CONTROLS oTree HINDS CONTROLS obFichero SIZE 4, 200 PIXEL OF owVerTree

¿ Es correcto ?

Posted: Mon Jun 25, 2007 1:49 pm
by JmGarcia
Me tapa toda la ventana.
Pues no consigo poner un ListBox (browse) en la parte derecha... y que ocupe tada esa parte, claro.

Posted: Tue Jun 26, 2007 2:03 pm
by RenOmaS

Code: Select all

owVerTree:oClient( oSplit )

ACTIVATE WINDOW owVerTree ON RESIZE ::oClient:AdjClient()
Saludos :twisted:

Posted: Thu Jun 28, 2007 2:28 pm
by JmGarcia
RenOmaS wrote:

Code: Select all

owVerTree:oClient( oSplit )
ACTIVATE WINDOW owVerTree ON RESIZE ::oClient:AdjClient()
No lo entiendo.
Pero ¿ Como pongo el objeto "obFichero" de mi codigo (primer mensaje) en la parte derecha de la ventana owVerTree ?
Es decir: a la izquierda el TREE y a la derecha el BROWSE(ListBox)

Posted: Fri Jun 29, 2007 1:42 pm
by RenOmaS
Lo pones igual..
El que va a controlar la posicion es el Spliter

Mira este trozo de programa y obser la construccion del objeto splitter

Code: Select all



CLASS MDITree FROM TMdiChild

   CLASSDATA oApp

   DATA oDbf, oDbfSlave
   DATA oTree, oBrw
   DATA nPosition
.......
   METHOD New() CONSTRUCTOR
   METHOD Activate()
.......
ENDCLASS

METHOD New( oApp, nId, nTop, nLeft, nBottom, nRight, oDbf, oDbfSlave ) CLASS MDITree

......

   Super:New( ::nTop, ::nLeft, ::nBottom, ::nRight, , Nil, Nil, oApp:oWnd, ;
                oApp:oWnd:oIcon, .F., ::nClrText, ::nClrPane, Nil, Nil, .T., .F., Nil, Nil, .T., ;
                .T., .T., .T. )

   ::oTree := TTreeView():New( 0, 0, Self, ::nClrtext, ::nClrPane, , , ::nPosition - 1 )
   ::oTree:SetFont( ::oFont )

   If oDbfSlave != Nil
      ::oDbfSlave := oDbfSlave
      ::lSplitter := .T.
      ::oBrw := tsBrowse():New( 0, ::nPosition + 4, Nil, Nil, Nil, Nil, , Self, Nil, Nil, Nil, ;
                                Nil, Nil, Nil, ::oFont, Nil, { ::nClrText }, Nil, .T., ;
                                oDbfSlave:cAlias, .T., Nil, Nil, Nil, Nil )
      ::oBrw:SetoDbf( oDbfSlave )

      ::oBrw:bLDblClick:= { || ::Edition() }


      ::oClient := TSplitter():New( 0, ::nPosition, .T., { ::oTree }, .T., { ::oBrw }, .T., ;
                                   Nil, Nil, Self, Nil, , , .T., .T., Nil, .F., .F. )

      ::oTree:bChanged := { |o,i| i := o:GetSelected(), ;
                                  If( !Empty( i:Cargo ) .and. ::oDbf:nArea > 0, ;
                                      ( ::oDbfSlave:SetScope( i:Cargo ), ;
                                        ::oBrw:Reset() ), ) }
   EndIf

.......
 
   Return Self

METHOD Activate( bEnd ) CLASS MDITree
   ::bEnd       := bEnd

   If ::lDefault
      ::ToolBar()
   Endif

   ::MakeTree()


   Super:Activate( , , , , ;
                   { || If( ::lSplitter, ::oClient:adjClient(), ) } )

   ::oTree:SetFocus()

   Return Self