FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posted: Wed Apr 11, 2007 10:20 AM
Tengo una ventana con tres objetos una Barra Outlook + Splitter + Browse (xBrowse) + TAB. El problema es que el browse me come la barra outlook y el tab engloba tanto a outlook como al browse y me gustaria que solo perteneciera al browse como lo hago.
He tomado el ejemplo /samples/testxbrw.prg

STATIC FUNCTION BasicCell( oWnd )

   local oChild, oFont, oOut, oSpl, oBrw, oTabs

   DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-8
   DEFINE WINDOW oChild TITLE "Basic Cell selector browse" MDICHILD OF oWnd

	//-----------------------------------------------------------------//
	//      Definimos un objeto OUTLOOK                                //
	//-----------------------------------------------------------------//

	@ -1, -1 OUTLOOK oOut ;
   SIZE 125, 100 ; //Ajustamos al tamaño máximo de la ventana, tenemos que pensar que esta la barra de mensajes
   COLOR CLR_BLACK , 16436871 ;  //CLR_HCYAN  16741960
   PIXEL ;
	FONT oFont ;
   OF oChild

	DEFINE GROUP OF OUTLOOK oOut PROMPT "&Informes" //Defino un apartado

	//-----------------------------------------------------------------//
	//      Definimos un objeto BROWSE                                 //
	//-----------------------------------------------------------------//

   oBrw := TXBrowse():New( oWnd )

   oBrw:SetRDD()
   oBrw:CreateFromCode()
   oBrw:cToolTip = "This is a test"

   //oChild:oClient := oBrw //Si lo pongo me machaca la barra outlook

	//-----------------------------------------------------------------//
	//      Definimos un objeto TAB                                    //
	//-----------------------------------------------------------------//


	@ 1, 0 TABS oTabs PROMPTS "&One", "&Two", "T&hree", "&Four" OF oChild ;
      ACTION oChild:Say( 5, 5, oTabs:nOption )

   oChild:oBottom = oTabs
	
	//----------------------------------------------------------------------------//
   //            Sistema de SPLITTER. objeto oSpl                                //
	//----------------------------------------------------------------------------//
   @ 1, 124 SPLITTER oSpl ;
            VERTICAL ;
            PREVIOUS CONTROLS oOut ;
            HINDS CONTROLS oBrw , oTabs;   //
            LEFT MARGIN 100;
            RIGHT MARGIN 200 ;
            SIZE 4, 100  PIXEL ;
            OF oChild ;
            _3DLOOK ;
            UPDATE


   ACTIVATE WINDOW oChild;
	                ON INIT oBrw:SetFocus();
                   ON RESIZE oSpl:AdjRight()


RETURN NIL
Saludos



Andrés González desde Mallorca
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posted: Wed Apr 11, 2007 10:42 AM
Hola Andres,

oBrw := TXBrowse():New( oWnd )

debes sustituir oWnd por oChild

Antes de Activate WINDOW añade el siguiente código
oChild:oLeft()  := oOut
oChild:oClient  := oBrw


Creo que con esto conseguiras el efecto deseado.
Saludos desde Mallorca
Biel MaimĂł
http://bielsys.blogspot.com/
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posted: Fri Apr 13, 2007 09:37 AM
Gracias Biel, el ejemplo es tal como esta en la carpeta samples de samples/testxbrw.prg. El problema es el resultado pues no se como decirle que las tab pertenecen al splitter derecho donde se muestra el browse. Quiero que aparezcan debajo del browse, esto lo he visto en varios programas hechos con fivewin pero no doy con el tema.

Si pongo oChild:oBottom = oTabs

me situa la barra tabs debajos de las dos partes del splitter, lo cual no queda mal ver esta foto
http://img87.imageshack.us/my.php?image ... 012xa6.png

" alt="" loading="lazy">



Pero no encuentro la forma de decirle que pertenece al browse o al splitter de la derecha.

Sin splitter va perfecto:

STATIC FUNCTION BasicRow( oWnd )

   local oChild, oBrw, oTabs

   DEFINE WINDOW oChild TITLE "Basic Row selector browse" MDICHILD OF oWnd

   oBrw := TXBrowse():New( oWnd )
   oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW

   oBrw:SetRDD()
   oBrw:CreateFromCode()

   oChild:oClient := oBrw

	@ 1, 0 TABS oTabs PROMPTS "&One", "&Two", "T&hree", "&Four" OF oChild ;
      ACTION oChild:Say( 5, 5, oTabs:nOption )

   oChild:oBottom = oTabs


   ACTIVATE WINDOW oChild ON INIT oBrw:SetFocus()

RETURN NIL


Situa uno a continuacion de otro.
Alguien que tenga experiencia en este tema me puede indicar como hacer para que la tab aparezca debajo del browse?
Saludos



Andrés González desde Mallorca
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posted: Fri Apr 13, 2007 10:19 AM

Andrés,

Prueba a comentar esta línea, y situa el tabs más abajo:

oChild:oBottom = oTabs

y en el bResized de la ventana tendrías que ponerle las coordenadas correctas al tabs, por lo menos el oTabs:nTop, ya que el nLeft lo hará el splitter

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Barra Outlook + Splitter + Browse (xBrowse) + TAB
Posted: Fri Apr 13, 2007 10:47 AM

Ya me he dado cuenta de este detalle, si quito esa linea me situa el tab en el splitter derecho encima del browse, ahora estaba intentando situarlo en las coordenadas correctas, pero cuando se redimensiona el browse ocupa toda el area de cliente. Estoy realizando pruebas para ver como cojo las coordenadas del browse y lo ajusto a la ventana que le deja el espliter, creo que los tiros deben de ir por ahĂ­.

Gracias Antonio

Saludos



Andrés González desde Mallorca

Continue the discussion