Splitter con varios controles

Splitter con varios controles

Postby jose_murugosa » Thu Jun 24, 2010 4:18 pm

No termino de captar el uso de splitters.
Image

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 :oops: , 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. :shock:

Gracias desde ya, por toda la ayuda que siempre me brindan :D

Aquí va el código:

Code: Select all  Expand view  RUN
#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:oSeek:=oSay
//      oBrw:oSeek: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 nil
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Splitter con varios controles

Postby jose_murugosa » Fri Jun 25, 2010 12:43 pm

Alguna idea? :(
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Splitter con varios controles

Postby horacio » Fri Jun 25, 2010 1:39 pm

José, yo uso extensivamente los splitter y lo que generalmente hago para diseñar las pantallas es poner primero los controles sobre la misma y después defino los splitter. Tu código parece estar bien, yo utilizaría oSplit : Adjust( .t.,.t.,.f.,.t. ) en Resize. Si se pueden usar paneles y, creo cualquier control. Espero te sirva
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Splitter con varios controles

Postby AIDA » Fri Jun 25, 2010 5:16 pm

Hola te falta el SetParent yo tengo algo similar a tu programita pero la windows de mi programita es MDI checa si te funciona sin ser MDI

@ 200,250 XBROWSE oBrw ;
COLUMNS "First", "City", "State", "Married", "HireDate", "Age", "Salary", "Hora", "cImagen", "Imagen" ;
OF oWnd ;
ALIAS cAlias AUTOSORT NOBORDER FOOTERS AUTOCOLS

SetParent( oBrw:hWnd, oWnd:hWnd )


Saluditos :wink:
Image
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Re: Splitter con varios controles

Postby ruben Dario » Fri Jun 25, 2010 8:59 pm

Jos elo compilo pero me genera estos errores

Error: Unresolved external '_HB_FUN_TDOTNETBAR' referenced from

Error: Unresolved external '_HB_FUN_TCARPETA' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETGROUP' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETBUTTON' referenced from

Tengo la Version de FWH 8.03 no se si es la version o son algunas librerias especiales.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Splitter con varios controles

Postby jose_murugosa » Sat Jun 26, 2010 2:28 am

ruben Dario wrote:Jos elo compilo pero me genera estos errores

Error: Unresolved external '_HB_FUN_TDOTNETBAR' referenced from

Error: Unresolved external '_HB_FUN_TCARPETA' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETGROUP' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETBUTTON' referenced from

Tengo la Version de FWH 8.03 no se si es la version o son algunas librerias especiales.


Es que tiene una clase que requiere de una librería de terceros, disculpa. :shock: :roll:
María, Voy a probar tus indicaciones y luego te cuento :D
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Splitter con varios controles

Postby jose_murugosa » Sat Jun 26, 2010 2:28 am

ruben Dario wrote:Jos elo compilo pero me genera estos errores

Error: Unresolved external '_HB_FUN_TDOTNETBAR' referenced from

Error: Unresolved external '_HB_FUN_TCARPETA' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETGROUP' referenced from

Error: Unresolved external '_HB_FUN_TDOTNETBUTTON' referenced from

Tengo la Version de FWH 8.03 no se si es la version o son algunas librerias especiales.


Ante todo Ruben gracias por contestar, efectivamente requiere de una lib de terceros para funcionar, disculpa :roll:

Aída, probaré y te cuento... gracias a ambos. :D
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Splitter con varios controles

Postby RenOmaS » Sat Jun 26, 2010 12:12 pm

Puedes experimetar esto

Code: Select all  Expand view  RUN
   
 @ 0, 199 SPLITTER oSplit ;
        VERTICAL _3DLOOK ;
.....
      oWnd:oClient := oSplit

ACTIVATE WINDOW oWnd ;
          ON RESIZE (  oSplit:AdjClient() )
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 61 guests