No termino de captar el uso de splitters.

Uploaded with ImageShack.us
aqu铆 pueden ver un intento de uso de una ribbon (no la de Fivewin), con un tree y un xbrowse, la pregunta surge porque no logro que se vea el browse
, y no me doy cuenta que hago mal.
Apreciar铆a si me pueden ayudar a hacerlo funcionar y cualquier aporte a entener mejor como se utilizan los splitters, por ahora no los entiendo del todo, sobre todo para acomodar los controles en ellos.
Al margen quer铆a saber tambi茅n si se pueden utilizar paneles con splitters y como.
Gracias desde ya, por toda la ayuda que siempre me brindan
Aqu铆 va el c贸digo:

Uploaded with ImageShack.us
aqu铆 pueden ver un intento de uso de una ribbon (no la de Fivewin), con un tree y un xbrowse, la pregunta surge porque no logro que se vea el browse
Apreciar铆a si me pueden ayudar a hacerlo funcionar y cualquier aporte a entener mejor como se utilizan los splitters, por ahora no los entiendo del todo, sobre todo para acomodar los controles en ellos.
Al margen quer铆a saber tambi茅n si se pueden utilizar paneles con splitters y como.
Gracias desde ya, por toda la ayuda que siempre me brindan
Aqu铆 va el c贸digo:
#include "fivewin.ch"
#include "ord.ch"
#include "splitter.ch"
#include "tree.ch"
#include "xbrowse.ch"
//
FUNCTION Main()
聽 聽 LOCAL oItem1, oItem2, oItem3, oItem4
聽 聽 LOCAL oWnd, oSplit, oFont, oBar, oTree, oTItem[5], oBrw
聽 聽 LOCAL oCarpeta[2], oGrp[4], oBtn[11], bWhen, oMenu
聽 聽
聽 聽 FIELD first, city
聽 聽 聽聽 聽
聽 聽 SET DEFAULT TO .\DATA
聽 聽 USE CUSTOMER ALIAS CUSTOMER NEW EXCLUSIVE
聽 聽 INDEX ON FIRST TAG FIRST
聽 聽 INDEX ON CITY TAG CITY
聽 聽 cAlias:=Alias()
聽 聽 GO TOP
聽 聽
聽 聽 DEFINE FONT oFont NAME "Ms Sans Serif" 聽SIZE 0, -10 BOLD
聽 聽
聽 聽 聽DEFINE WINDOW oWnd FROM 10, 10 TO 50, 140
聽 聽 聽聽 聽//Definici贸n de Ribbon
聽 聽 聽 聽 oBar := TDotNetBar():New( 0, 205, 1300, 113, oWnd, 1 )
聽 聽 聽 聽 oBar:lDisenio := .t.
聽 聽 聽 聽 oCarpeta[1] := TCarpeta():New( oBar, "Navegaci贸n" )
聽 聽 聽 聽 聽 聽 oGrp[1] := TDotNetGroup():New( oCarpeta[1], 250, "Navegaci贸n", .f.,, "" )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[1] := TDotNetButton():New( 60, oGrp[1], ".\bmps\primero.bmp","Primero", 1, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[2] := TDotNetButton():New( 60, oGrp[1], ".\bmps\anterior.bmp","Anterior", 2, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[3] := TDotNetButton():New( 60, oGrp[1], ".\bmps\siguiente.bmp","Siguiente", 3, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[4] := TDotNetButton():New( 60, oGrp[1], ".\bmps\ultimo.bmp","脷ltimo", 4, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 oGrp[2] := TDotNetGroup():New( oCarpeta[1], 128, "B煤squedas", .f.,, "" )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[5] := TDotNetButton():New( 60, oGrp[2], ".\bmps\numeral.bmp","por 聽ID.", 1, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[6] := TDotNetButton():New( 60, oGrp[2], ".\bmps\buscar.bmp","p/Nombre", 2, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 oGrp[3] := TDotNetGroup():New( oCarpeta[1], 186, "Otros", .f.,, "" )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[7] := TDotNetButton():New( 60, oGrp[3], ".\bmps\calend.bmp","Calendario", 1, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[8] := TDotNetButton():New( 60, oGrp[3], ".\bmps\calcular.bmp","Calculadora", 2, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[9] := TDotNetButton():New( 60, oGrp[3], ".\bmps\salir.bmp","Salir", 3, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 oCarpeta[2] := TCarpeta():New( oBar, "Edici贸n" )
聽 聽 聽 聽 聽 聽 oGrp[4] := TDotNetGroup():New( oCarpeta[2], 128, "Edici贸n", .f.,, "" )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[10] := TDotNetButton():New( 60, oGrp[4], ".\bmps\nuevo.bmp","Nuevo", 1, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 聽 聽 聽 聽 oBtn[11] := TDotNetButton():New( 60, oGrp[4], ".\bmps\eliminar.bmp","Eliminar", 2, {|| .t.}, 聽oMenu , bWhen, .f., .f., .f. )
聽 聽 聽 聽 //Fin de definici贸n de Ribbon
聽 聽 聽 聽 //Definici贸n del Tree聽 聽 聽 聽 聽
聽 聽 聽 聽 oTree = TTreeView():New( 8, 0, oWnd,,,,,200,800 )
聽 聽 聽 聽
聽 聽 聽 聽 //pone en el titulo de la ventana la elecci贸n.
聽 聽 聽 聽 //oTree:bChanged = { || oWnd:SetText( If( oTree:GetSelected():GetParent() != nil,;
聽 聽 聽 聽 聽 //聽 聽 聽 聽 聽 聽 oTree:GetSelected():GetParent():cPrompt + " + ", "" ) + ;
聽 聽 聽 聽 聽 //聽 聽 聽 聽 聽 聽 oTree:GetSelText() ) }
聽 聽 聽 聽 //oTree:SetImageList( oImageList )
聽 聽 聽 聽 oItem1 = oTree:Add( "Opcion1" )
聽 聽 聽 聽 oItem1:Add( "Otras Opciones" )
聽 聽 聽 聽 oItem2 = oItem1:Add( "M谩s a煤n" )
聽 聽 聽 聽 聽 聽 oItem2:Add( "Opcion2" )
聽 聽 聽 聽 聽 聽 oItem2:Add( "Opcion3" )
聽 聽 聽 聽 oItem3 = oItem2:Add( "Otros Items" )
聽 聽 聽 聽 聽 聽 oItem3:Add( "Opcion4" )
聽 聽 聽 聽 oTree:Add( "Opcion5" )
聽 聽 聽 聽 oItem4 = oTree:Add( "Opcion6" )
聽 聽 聽 聽 oItem4:Add( "Opcion7" )聽
聽 聽 聽 聽 聽//Fin definici贸n Tree
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽//Definici贸n Browse
聽 聽 聽 聽 聽@ 200,250 XBROWSE oBrw 聽;
聽 聽 聽 聽 聽 聽 COLUMNS "First", "City", "State", "Married", "HireDate", "Age", "Salary", "Hora", "cImagen", "Imagen" ;
聽 聽 聽 聽 聽 聽 OF oWnd ;
聽 聽 聽 聽 聽 聽 ALIAS cAlias AUTOSORT NOBORDER FOOTERS AUTOCOLS
聽 聽 聽 聽 聽 聽
聽 聽 聽 聽
聽 聽 聽 聽
聽 聽 聽 聽 XBrNumFormat( 'E', .t. )
聽 聽 聽 聽 SetBalloon( .t. )聽 聽
聽 聽 聽 聽 oBrw:nStretchCol 聽 := 0
聽 聽 聽 聽 聽
聽 聽 聽 聽 oBrw:nRowDividerStyle = LINESTYLE_NOLINES
聽 聽 聽 聽 oBrw:nColDividerStyle = LINESTYLE_NOLINES
聽 聽 聽 聽 oBrw:nMarqueeStyle 聽 聽= MARQSTYLE_HIGHLROW
聽 聽 聽 聽
聽 聽 聽 聽 oBrw:First:nEditType:= EDIT_GET
聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 oBrw:City:nEditType:= EDIT_GET_LISTBOX
聽 聽 聽 聽 oBrw:City:aEditListTxt:={"uno", "dos", "tres"}
聽 聽 聽 聽
聽 聽 聽 聽 oBrw:Married:nEditType:=EDIT_GET
聽 聽 聽 聽
聽 聽 聽 聽 oBrw:HireDate:nEditType 聽 聽 := EDIT_DATE
聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:First
聽 聽 聽 聽 聽 聽 :cSortOrder:="FIRST"
聽 聽 聽 聽 聽 聽 :bLClickHeader:= {|| oBrw:Gotop() }聽
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:City
聽 聽 聽 聽 聽 聽 :cSortOrder:="CITY"
聽 聽 聽 聽 聽 聽 :bLClickHeader:= {|| ( oBrw:Gotop() ) }
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:state
聽 聽 聽 聽 聽 聽 :nEditType 聽 聽 := EDIT_GET_BUTTON聽 聽
聽 聽 聽 聽 聽 聽 :addResource( ".\bmps\next.bmp" )
聽 聽 聽 聽 聽 聽 :lBtnTransparent := .t.
聽 聽 聽 聽 聽 聽 :nBtnBmp := 1
聽 聽 聽 聽 聽 聽 :bEditValid 聽 聽:= {|o| if ( Empty(o:value()) , .f., .t.) }
聽 聽 聽 聽 聽 聽 :bEditBlock 聽 := {|| MsgInfo( "No hago nada :)") }
聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:salary
聽 聽 聽 聽 聽 聽 :SetProgBar( { || nMaxSal },, { || { nProgClr, CLR_WHITE } } )
聽 聽 聽 聽 聽 聽 :nTotal 聽 := 0 ; :lTotal 聽 := .t. ; :nEditType := EDIT_GET
聽 聽 聽 聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:Age
聽 聽 聽 聽 聽 聽 聽:nTotal 聽 := 0 ; :lTotal 聽 := .t. ; :nEditType := EDIT_GET
聽 聽 聽 聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:hora
聽 聽 聽 聽 聽 聽 :nEditType 聽 聽 := EDIT_TIME
聽 聽 聽 聽 聽 聽 :lBtnTransparent := .t.
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 WITH OBJECT oBrw:cImagen
聽 聽聽聽 聽 聽 聽 :nEditType 聽 聽 聽 := EDIT_BUTTON
聽 聽聽聽 聽 聽 聽 :addResource( ".\bmps\files.bmp" )
聽 聽 聽 聽 聽 聽 :lBtnTransparent := .t.
聽 聽 聽 聽 聽 聽 :nBtnBmp := 1 聽聽//si no se pone no aparece el bot贸n.
聽 聽 聽 聽 聽 聽 :bEditBlock 聽 聽 聽:= { |nRow, nCol, oCol| ( oCol:Value := cGetFile( "*.*", "Selecione un archivo:" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 customer->Imagen:=oCol:Value ) }
聽 聽 聽 聽 END
聽 聽 聽 聽
聽 聽 聽 聽 聽 WITH OBJECT oBrw:Imagen
聽 聽聽聽 聽 聽 聽 :nEditType 聽 聽 聽 := EDIT_GET
聽 聽 聽 聽 聽 聽 :cDataType := 'F' 聽//esto hace que se guarde el path y nombre del archivo en la base pero se muestre la imagen.
聽 聽聽聽 聽 END
聽 聽聽聽 聽
聽 聽 聽 聽 oBrw:bSeek := {|c| CUSTOMER->( DbSeek( c ,.t. ) ) }
//聽 聽 聽 oBrw:=oSay
// 聽 聽 聽oBrw:nLeft := oBrw:nLeft + oBrw:aCols[ 1 ]:nDisplayCol
聽 聽聽聽 聽
聽 聽 聽 聽 oBrw:MakeTotals()
聽 聽 聽 聽
聽 聽 聽 聽 oBrw:CreateFromCode()
聽 聽 聽 聽 聽//Fin definicion Browse
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽//Definici贸n del Splitter contenedor del Browse y el Tree
聽 聽 聽 聽 聽@ 0, 200 SPLITTER oSplit ;
聽 聽 聽 聽 VERTICAL _3DLOOK ;
聽 聽 聽 聽 PREVIOUS CONTROLS oTree ;
聽 聽 聽 聽 HINDS CONTROLS oBrw, oBar ;
聽 聽 聽 聽 SIZE 4, 800 PIXEL ; 聽//ancho y largo del splitter
聽 聽 聽 聽 OF oWnd
聽 聽 聽 聽
聽 聽 聽ACTIVATE WINDOW oWnd ;
聽 聽 聽 聽 聽 ON RESIZE ( 聽oSplit:AdjClient() )
RETURN nilSaludos/Regards,
Jos茅 Murugosa
"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Jos茅 Murugosa
"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
