Page 1 of 2

To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Thu Aug 19, 2010 4:37 pm
by Silvio
try this sample test please

I used customer.dbf and Test.dbf you can found on fwh\samples

Code: Select all

 
#include "FiveWin.ch"
#include "XBrowse.ch"
#include "Splitter.ch"



// Purpose: Showing two xbrowse with a Horizontal splitter in a dialog,
//          an explorerbar at Right , on the first xbrowse there is a tab
// Author : Silvio falconi
// Date   : 19.08.2010



STATIC  oWnd,oBar,oDlg ,oSplit2,oSplit,oExBar

function Main()


   DEFINE WINDOW oWnd TITLE "Simply Test ExplorerBar  two browse, tab, and splitters"  ;
      MENU BuildMenu()

    DEFINE BUTTONBAR oBar _3D SIZE 44, 46 OF oWnd 2007

   oWnd:bResized := {|| ResizeWndMain() }

   ACTIVATE WINDOW oWnd maximized on init Test()

return nil




function BuildMenu()

   local oMenu

   MENU oMenu  2007
      MENUITEM "Test"
      MENU
         MENUITEM "Go Test "
      ENDMENU
      oMenu:AddMdi()
   ENDMENU

   return oMenu




function test()
Local oDlg
Local oGrid2
Local oGrid3
Local nSplit :=220
local aClient

lOCAL nGridBottom,nGridRight

local oTab



// create the dialog into oWnd
 aClient := GetClientRect (oWnd:hWnd )


 DEFINE DIALOG oDlg

  oDlg:nTop    = oBar:nHeight-1
  oDlg:nLeft   = 0
  oDlg:nBottom = aClient[3] - 1
  oDlg:nRight  = aClient[4]
  oDlg:nStyle  = nOR( WS_CHILD, 4 )
  nGridBottom := (oDlg:nBottom / 2) - oBar:nHeight
  nGridRight  := (oDlg:nRight / 2 )
   // oWnd:oClient := oDlg



  @0,0 EXPLORERBAR oExBar of  oDlg  SIZE nSplit-2, oDlg:nBottom


// open first xbrowse


  SELECT 1

   USE Customer ALIAS CU



   oGrid2 := TXBrowse():New( oDlg )
   oGrid2:nTop    := 00
   oGrid2:nLeft   := nSplit+2
   oGrid2:nBottom := 200
   oGrid2:nRight  := nGridRight



   oCol = oGrid2:AddCol()
   oCol:bStrData = { || CU->First }
   oCol:cHeader = "First"




   oGrid2:cAlias :=CU->(Alias())
   oGrid2:SetRDD()
   oGrid2:CreateFromCode()



   //create the Tabs

     @  oGrid2:nBottom, oGrid2:nLeft TABS oTab ;
     OPTION 1 SIZE oWnd:nWidth()-80, 12 PIXEL OF oDlg ;
     ITEMS ' First ', ' Last ';
     ACTION ( nOrder := oTab:nOption  ,;
              CU->(DbSetOrder(nOrder)),;
              CU->(DbGoTop())         ,;
              oGrid2:Refresh(.t.)    )







   // open second xbrowse


SELECT 2
USE TEST ALIAS TEST

   oGrid3 := TXBrowse():New( oDlg )
  // oGrid3:nTop    :=   oGrid2:nBottom+5
   oGrid3:nTop    :=   oTab:nbottom+5
   oGrid3:nLeft   :=   nSplit+2
   oGrid3:nBottom :=    nGridBottom
   oGrid3:nRight  :=   nGridRight

   oGrid3:cAlias :=TEST->(Alias())
   oGrid3:SetRDD()
   oGrid3:CreateFromCode()









//First splitter

  @ oTab:nbottom+2, nSplit SPLITTER oSplit2 ;
                 HORIZONTAL  ;
                  COLOR CLR_RED ;
                   PREVIOUS CONTROLS oGrid2,oTab ;
                   HINDS CONTROLS oGrid3 ;
                    SIZE  oGrid3:nRight, 2 PIXEL ;
                   OF oDlg ;
                   _3DLOOK ;
                 UPDATE





// second  Splitter

   @ 00, nSplit SPLITTER oSplit ;
      VERTICAL ;
       COLOR CLR_BLUE ;
      PREVIOUS CONTROLS oExBar;
      HINDS CONTROLS oGrid2, oGrid3, oSplit2,oTab;
      SIZE 1, nGridBottom PIXEL ;
      OF oDlg ;
      _3DLOOK ;
      UPDATE




   ACTIVATE DIALOG oDlg NOWAIT;
   ON INIT ExplBarInit( oExBar ) ;
  ON PAINT oSplit:AdjClient()



return nil






Function ResizeWndMain()
   local aClient
   if oDlg != NIL
      aClient := GetClientRect (oWnd:hWnd )
      oDlg:SetSize( aClient[4], aClient[3] - oWnd:oBar:nHeight - oWnd:oMsgBar:nHeight )
      // oApp():oDlg:Move(oApp():oDlg:nYMove,)
      oDlg:Refresh()
      SysRefresh()
   endif
return NIL






function ExplBarInit( oExBar )

   local oPanel1, oPanel2, oPanel3, oPanel4
   local bClick := { | o | MsgInfo( o:GetText() ) }

   oPanel1 = oExBar:AddPanel( "One", "people" )
   oPanel1:lSpecial = .T.
   oPanel1:AddLink( "First item", bClick, "additem" )
   oPanel1:AddLink( "Second item", bClick, "copy" )
      
   oPanel2 = oExBar:AddPanel( "Two", "case" )
   oPanel2:AddLink( "First item", bClick, "adddbf" )
   oPanel2:AddLink( "Second item", bClick, "delete" )
   oPanel2:AddLink( "Third item", bClick, "envelope" )
   oPanel2:AddLink( "Fourth item", bClick, "envelope" )

   oPanel3 = oExBar:AddPanel( "Three", "graphics" )
   oPanel3:AddLink( "First item", bClick, "adddbf" )
   
   oPanel4 = oExBar:AddPanel( "Four" )
   oPanel4:AddLink( "First item", bClick, "copy" )
   oPanel4:AddLink( "Second item", bClick, "additem" )

return nil
 

the problem is : the horizontal splitter run bad because when I move it the tab control ( it is on down the first xbrowse) become bigger and the I cannot move the Horizontal splitter






Image

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 5:38 pm
by Daniel Garcia-Gil
Silvio...

i explained you yesterday by chat...

leave here a simple test... working

http://www.sitasoft.net/fivewin/samples/spli.zip

Image

Code: Select all

#include "fivewin.ch"
#include "Splitter.ch"

REQUEST DBFCDX

FUNCTION Main()
   LOCAL oSample

   oSample = TSample():New()
      
RETURN NIL

//--------------------

CLASS TSample

  DATA oWnd
  DATA oTaskpanel
  DATA oSplitV
  DATA oSplitH
  DATA oGrid
  DATA oTab
  
  DATA oPanelLeft
  DATA oPanelTop
  DATA oPanelDown
  
  METHOD New()
  
  METHOD BuildGrid()
  METHOD BuildPanel()
  METHOD BuildSplitterH()
  METHOD BuildSplitterV()
  METHOD Buildtab()
  METHOD OnResizeWnd( nWidth, nHeight )
  
ENDCLASS

//--------------------

METHOD New() CLASS TSample

   LOCAL oBrush

   DEFINE BRUSH oBrush COLOR CLR_CYAN

   DEFINE WINDOW ::oWnd 

   ::oPanelLeft = TPanel():New( 0, 0, 150, 150, ::oWnd )   
   ::oPanelTop  = TPanel():New( 0, ::oPanelLeft:nRight + 5, ::oWnd:nHeight, ::oWnd:nWidth, ::oWnd )   
   ::oPanelDown = TPanel():New( ::oPanelTop:nHeight + 5, ;
                                ::oPanelLeft:nRight + 5, ;
                                ::oWnd:nHeight - ::oPanelTop:nHeight - 5, ;
                                ::oWnd:nWidth, ::oWnd )   
   ::BuildPanel()
   ::BuildGrid()
   ::BuildTab()
   ::BuildSplitterH()
   ::BuildSplitterV()

   ::oPanelDown:SetBrush( oBrush )
   ::oWnd:bResized = {| nType, nWidth, nHeight | ::OnResizeWnd( nWidth, nHeight ) }
   
   ACTIVATE WINDOW ::oWnd

RETURN Self

//--------------------

METHOD BuildGrid() CLASS TSample

   LOCAL i, aBrowse, oCol

   USE "customer" ALIAS CU NEW SHARED

   ::oGrid := TXBrowse():New( ::oPanelTop )
   ::oGrid:nTop    := 0
   ::oGrid:nLeft   := 0
   ::oGrid:nBottom := ::oWnd:nHeight
   ::oGrid:nRight  := ::oWnd:nWidth

   aBrowse   := { { { || CU->FIRST }, i18n("First"), 150, 0 },;
                  { { || CU->LAST  }, i18n("Last"), 150, 0 },;
                  { { || CU->STREET}, i18n("Street"), 150, 0 },;
                  { { || CU->CITY } , i18n("City"), 150, 0 } }

   FOR i := 1 TO Len(aBrowse)
      oCol := ::oGrid:AddCol()
      oCol:bStrData := aBrowse[ i, 1 ]
      oCol:cHeader  := aBrowse[ i, 2 ]
      oCol:nWidth   := aBrowse[ i, 3 ]
      oCol:nDataStrAlign := aBrowse[ i, 4 ]
      oCol:nHeadStrAlign := aBrowse[ i, 4 ]
   NEXT
 
   ::oGrid:SetRDD()
   ::oGrid:CreateFromCode()
   
   ::oPanelTop:oClient = ::oGrid


RETURN NIL


//--------------------

METHOD BuildPanel() CLASS TSample

   LOCAL oPanel1
   lOCAL bClick:={|| msgInfo( "clicked") }

   ::oTaskPanel := TExplorerBar():New( 0, 0, 150, 150, ::oPanelLeft )
   oPanel1 = ::oTaskPanel:AddPanel( "One", "c:\fwh\bitmaps\32x32\people.bmp" )
   oPanel1:lSpecial = .T.
   oPanel1:AddLink( "First item", bClick, "c:\fwh\bitmaps\16x16\additem.bmp" )
   oPanel1:AddLink( "Second item", bClick, "c:\fwh\bitmaps\16x16\copy.bmp" )
   ::oPanelLeft:oClient = ::oTaskPanel
       
RETURN NIL

//--------------------

METHOD BuildSplitterV() CLASS TSample
   
   @ 00, ::oTaskPanel:nWidth + 1 SPLITTER ::oSplitV ;
         VERTICAL ;
         COLOR CLR_YELLOW ;
         PREVIOUS CONTROLS ::oPanelLeft ;
         HINDS CONTROLS ::oPanelTop, ::oPanelDown, ::oSplitH;
         SIZE 2, ::oWnd:nHeight PIXEL  ;
         LEFT MARGIN 70           ;
         RIGHT MARGIN 200         ;
         OF ::oWnd ;
         UPDATE
      
RETURN NIL

//--------------------

METHOD BuildSplitterH() CLASS TSample
   
   @ ::oGrid:nHeight + 1, ::oTaskPanel:nWidth + 1 SPLITTER ::oSplitH ;
         HORIZONTAL ;
         COLOR CLR_YELLOW ;
         PREVIOUS CONTROLS ::oPanelTop ;
         HINDS CONTROLS ::oPanelDown;
         SIZE ::oWnd:nWidth, 2 PIXEL  ;
         TOP MARGIN 120           ;
         BOTTOM MARGIN 120  ;
         OF ::oWnd ;
         UPDATE
      
RETURN NIL

//--------------------

METHOD Buildtab() CLASS TSample

   LOCAL oSelf := Self

   @ ::oGrid:nBottom + 2, 0 TABS ::oTab SIZE ::oPanelTop:nWidth, 12 PIXEL OF ::oPanelTop ;
     ITEMS ' First ', ' Last ';
     ACTION ( CU->( DbSetOrder( ::oTab:nOption ) ),;
              CU->( DbGoTop() ) ,;
              oSelf:oGrid:Refresh( .T. ) )
              
   ::oPanelTop:oBottom = ::oTab              

RETURN NIL
//--------------------

METHOD OnResizeWnd( nWidth, nHeight )

   IF nWidth != NIL  .AND. nHeight != NIL
   
      ::oPanelLeft:SetSize( ::oPanelLeft:nWidth, nHeight )
      ::oSplitV:SetSize( ::oSplitV:nWidth, nHeight )
      ::oSplitV:nLong = nHeight
      ::oPanelTop:SetSize( nWidth - ::oPanelLeft:nWidth - ::oSplitV:nWidth, ::oPanelTop:nHeight )
      ::oSplitH:SetSize( nWidth, 2 )
      ::oSplitH:nLong = nWidth
      ::oPanelDown:SetSize( nWidth - ::oPanelLeft:nWidth - ::oSplitV:nWidth, nHeight - ::oPanelDown:nTop )
   
   ENDIF

RETURN NIL
 

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 5:41 pm
by Silvio
ok this in a Window ...I understood What you sad on chat

But I'm thinking ... the dialog is From Twindow Class
If you Know How resolve it on a Window You Know How Resolve it on a Dialog...

and then I not understood why if I ask to resolve it on a Dialog Why U and All let me sad to resolve it on Window

On past there is one man ( now also alive) not Know How resolve mine problems and allways he thinked How around the problem to propose another solution ....

I use a Dialog ( Nor. 4 style ) on a Window no MDi not a window ... I explained you the problem yesterday at chat

If I cannot create it , NO PROBLEM !!!

On past When the problem is not Of Community , I cannot resolve the problem,... I must only wait when someone of You has the same problem

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 5:57 pm
by Daniel Garcia-Gil
Silvio

absolutely same

this samples is with dialog now... (windows, dialogs and panels)

http://www.sitasoft.net/fivewin/samples/spli2_1.zip

Code: Select all

#include "fivewin.ch"
#include "Splitter.ch"

REQUEST DBFCDX

FUNCTION Main()
   LOCAL oSample

   oSample = TSample():New()
      
RETURN NIL

//--------------------

CLASS TSample

  DATA oWnd
  DATA oTaskpanel
  DATA oSplitV
  DATA oSplitH
  DATA oGrid
  DATA oTab
  
  DATA oPanelLeft
  DATA oPanelTop
  DATA oPanelDown
  
  METHOD New()
  
  METHOD BuildGrid()
  METHOD BuildPanel()
  METHOD BuildSplitterH()
  METHOD BuildSplitterV()
  METHOD Buildtab()
  METHOD OnResizeWnd( nWidth, nHeight )
  
ENDCLASS

//--------------------

METHOD New() CLASS TSample

   LOCAL oBrush
   LOCAL oSelf := Self

   DEFINE BRUSH oBrush COLOR CLR_CYAN

   DEFINE WINDOW ::oWnd 

   DEFINE DIALOG ::oPanelLeft STYLE nOr( WS_CHILD ) SIZE 150, 150 OF ::oWnd
   ACTIVATE DIALOG ::oPanelLeft NOWAIT
   
   DEFINE DIALOG ::oPanelTop STYLE nOr( WS_CHILD ) SIZE 150, 150 OF ::oWnd
   ACTIVATE DIALOG ::oPanelTop NOWAIT ;
   ON INIT ::Move( 0, oSelf:oPanelLeft:nRight + 5, oSelf:oWnd:nHeight / 2, oSelf:oWnd:nWidth )

   ::oPanelDown = TPanel():New( ::oPanelTop:nHeight + 5, ;
                                ::oPanelLeft:nRight + 5, ;
                                ::oWnd:nHeight - ::oPanelTop:nHeight - 5, ;
                                ::oWnd:nWidth, ::oWnd )   
                                
   ::BuildPanel()
   ::BuildGrid()
   ::BuildTab()
   ::BuildSplitterH()
   ::BuildSplitterV()

   ::oPanelDown:SetBrush( oBrush )
   ::oWnd:bResized = {| nType, nWidth, nHeight | ::OnResizeWnd( nWidth, nHeight ) }
   
   ACTIVATE WINDOW ::oWnd

RETURN Self

//--------------------

METHOD BuildGrid() CLASS TSample

   LOCAL i, aBrowse, oCol

   USE "customer" ALIAS CU NEW SHARED

   ::oGrid := TXBrowse():New( ::oPanelTop )
   ::oGrid:nTop    := 0
   ::oGrid:nLeft   := 0
   ::oGrid:nBottom := ::oWnd:nHeight
   ::oGrid:nRight  := ::oWnd:nWidth

   aBrowse   := { { { || CU->FIRST }, i18n("First"), 150, 0 },;
                  { { || CU->LAST  }, i18n("Last"), 150, 0 },;
                  { { || CU->STREET}, i18n("Street"), 150, 0 },;
                  { { || CU->CITY } , i18n("City"), 150, 0 } }

   FOR i := 1 TO Len(aBrowse)
      oCol := ::oGrid:AddCol()
      oCol:bStrData := aBrowse[ i, 1 ]
      oCol:cHeader  := aBrowse[ i, 2 ]
      oCol:nWidth   := aBrowse[ i, 3 ]
      oCol:nDataStrAlign := aBrowse[ i, 4 ]
      oCol:nHeadStrAlign := aBrowse[ i, 4 ]
   NEXT
 
   ::oGrid:SetRDD()
   ::oGrid:CreateFromCode()
   
   ::oPanelTop:oClient = ::oGrid


RETURN NIL


//--------------------

METHOD BuildPanel() CLASS TSample

   LOCAL oPanel1
   lOCAL bClick:={|| msgInfo( "clicked") }

   ::oTaskPanel := TExplorerBar():New( 0, 0, 150, 150, ::oPanelLeft )
   oPanel1 = ::oTaskPanel:AddPanel( "One", "c:\fwh\bitmaps\32x32\people.bmp" )
   oPanel1:lSpecial = .T.
   oPanel1:AddLink( "First item", bClick, "c:\fwh\bitmaps\16x16\additem.bmp" )
   oPanel1:AddLink( "Second item", bClick, "c:\fwh\bitmaps\16x16\copy.bmp" )
   ::oPanelLeft:oClient = ::oTaskPanel
       
RETURN NIL

//--------------------

METHOD BuildSplitterV() CLASS TSample
   
   @ 00, ::oTaskPanel:nWidth + 1 SPLITTER ::oSplitV ;
         VERTICAL ;
         COLOR CLR_YELLOW ;
         PREVIOUS CONTROLS ::oPanelLeft ;
         HINDS CONTROLS ::oPanelTop, ::oPanelDown, ::oSplitH;
         SIZE 2, ::oWnd:nHeight PIXEL  ;
         LEFT MARGIN 70           ;
         RIGHT MARGIN 200         ;
         OF ::oWnd ;
         UPDATE
      
RETURN NIL

//--------------------

METHOD BuildSplitterH() CLASS TSample
   
   @ ::oPanelTop:nHeight + 1, ::oTaskPanel:nWidth + 1 SPLITTER ::oSplitH ;
         HORIZONTAL ;
         COLOR CLR_YELLOW ;
         PREVIOUS CONTROLS ::oPanelTop ;
         HINDS CONTROLS ::oPanelDown;
         SIZE ::oWnd:nWidth, 2 PIXEL  ;
         TOP MARGIN 120           ;
         BOTTOM MARGIN 120  ;
         OF ::oWnd ;
         UPDATE
      
RETURN NIL

//--------------------

METHOD Buildtab() CLASS TSample

   LOCAL oSelf := Self

   @ ::oGrid:nBottom + 2, 0 TABS ::oTab SIZE ::oPanelTop:nWidth, 12 PIXEL OF ::oPanelTop ;
     ITEMS ' First ', ' Last ';
     ACTION ( CU->( DbSetOrder( ::oTab:nOption ) ),;
              CU->( DbGoTop() ) ,;
              oSelf:oGrid:Refresh( .T. ) )
              
   ::oPanelTop:oBottom = ::oTab              

RETURN NIL
//--------------------

METHOD OnResizeWnd( nWidth, nHeight )

   IF nWidth != NIL  .AND. nHeight != NIL
   
      ::oPanelLeft:SetSize( ::oPanelLeft:nWidth, nHeight )
      ::oSplitV:SetSize( ::oSplitV:nWidth, nHeight )
      ::oSplitV:nLong = nHeight
      ::oPanelTop:SetSize( nWidth - ::oPanelLeft:nWidth - ::oSplitV:nWidth, ::oPanelTop:nHeight )
      ::oSplitH:SetSize( nWidth, 2 )
      ::oSplitH:nLong = nWidth
      ::oPanelDown:SetSize( nWidth - ::oPanelLeft:nWidth - ::oSplitV:nWidth, nHeight - ::oPanelDown:nTop )
   
   ENDIF

RETURN NIL
 

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 6:04 pm
by James Bott
Daniel,

I previously had tried what you have done by putting the Explorer bar on a panel. This does force the scrollbar to be in the correct position, but the scrollbar doesn't work correctly. It is always visible instead of only being visible if there is something off the bottom of the window that could be scrolled.

As I discuss in another current thread on this topic I believe the explorer bar needs to be modified so that the scollbar is built into the control. See this thread for details:

http://forums.fivetechsupport.com/viewt ... =3&t=19614

Regards,
James

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 6:12 pm
by James Bott
Silvio,

As I have pointed out previously, you gain nothing by adding a dialog to the program. It just makes it more complex without adding a benefit.

I understand that you found that somehow it helped you fix a problem with "alias not found" errors, but this was an accidental discovery. You already had a program bug and this can easily be fixed without using a dialog.

Regards,
James

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 7:33 pm
by Silvio
James ,
You can think how you want withn this methos i not lose customers

I make an simply prg with a window

DEFINE WINDOW ::oWndMain


ACTIVATE WINDOW ::oWndMain


on button bar I click on CUSTOMER()


SELECT CU
oApp():oDlg := TFsdi():New(oApp():oWndMain) Create a DIALOG ( WS_CHILD or NOR 4 STYLE )
oApp():oDlg:cTitle := i18n('Gestión de clientes')
oApp():oWndMain:oClient := oApp():oDlg
oApp():oDlg:NewGrid( nSplit ) create a xbrowse

can i create an explorerbar
can I create a tabs on down the xbrowse

It run ok

I can create customers(), articles(), Orders(), Sales(),

I can create also GRAPH CLASS INSTEAD of Xbrowse

and it run ok

and now I not lose customers....


Many years ago when there was the newgrouo I had the problem " ALIAS DON'T EXIST" and none help me

Now I use a system on MDI solution ( Mr Alfredo Arteaga propose) and it run good and it run ok also on this new method ( ws_child or nor 4 style dialog) .

the problem not is the " ALIAS DON'T EXIST" the problem is another .. my problem is not of Community problem .....


As I allready wrote If I cannot create it NO PROBLEM !

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 7:44 pm
by Silvio
BUT THERE is SOMETHING I NOT UNDERSTOOD


GO ON MY TEST SAMPLE AND REM THE TAB CONTROL

or compile this

Code: Select all

 
#include "FiveWin.ch"
#include "XBrowse.ch"
#include "Splitter.ch"



// Purpose: Showing two xbrowse with a Horizontal splitter in a dialog,
//          an explorerbar at Right , on the first xbrowse there is a tab
// Author : Silvio falconi
// Date   : 19.08.2010



STATIC  oWnd,oBar,oDlg ,oSplit2,oSplit,oExBar

function Main()


   DEFINE WINDOW oWnd TITLE "Simply Test ExplorerBar  two browse, tab, and splitters"  ;
      MENU BuildMenu()

    DEFINE BUTTONBAR oBar _3D SIZE 44, 46 OF oWnd 2007

   oWnd:bResized := {|| ResizeWndMain() }

   ACTIVATE WINDOW oWnd maximized on init Test()

return nil




function BuildMenu()

   local oMenu

   MENU oMenu  2007
      MENUITEM "Test"
      MENU
         MENUITEM "Go Test "
      ENDMENU
      oMenu:AddMdi()
   ENDMENU

   return oMenu




function test()
Local oDlg
Local oGrid2
Local oGrid3
Local nSplit :=220
local aClient

lOCAL nGridBottom,nGridRight

local oTab



// create the dialog into oWnd
 aClient := GetClientRect (oWnd:hWnd )


 DEFINE DIALOG oDlg

  oDlg:nTop    = oBar:nHeight-1
  oDlg:nLeft   = 0
  oDlg:nBottom = aClient[3] - 1
  oDlg:nRight  = aClient[4]
  oDlg:nStyle  = nOR( WS_CHILD, 4 )
  nGridBottom := (oDlg:nBottom / 2) - oBar:nHeight
  nGridRight  := (oDlg:nRight / 2 )
   // oWnd:oClient := oDlg



  @0,0 EXPLORERBAR oExBar of  oDlg  SIZE nSplit-2, oDlg:nBottom


// open first xbrowse


  SELECT 1

   USE Customer ALIAS CU



   oGrid2 := TXBrowse():New( oDlg )
   oGrid2:nTop    := 00
   oGrid2:nLeft   := nSplit+2
   oGrid2:nBottom := 200
   oGrid2:nRight  := nGridRight



   oCol = oGrid2:AddCol()
   oCol:bStrData = { || CU->First }
   oCol:cHeader = "First"




   oGrid2:cAlias :=CU->(Alias())
   oGrid2:SetRDD()
   oGrid2:CreateFromCode()



   //create the Tabs
 /*
     @  oGrid2:nBottom, oGrid2:nLeft TABS oTab ;
     OPTION 1 SIZE oWnd:nWidth()-80, 12 PIXEL OF oDlg ;
     ITEMS ' First ', ' Last ';
     ACTION ( nOrder := oTab:nOption  ,;
              CU->(DbSetOrder(nOrder)),;
              CU->(DbGoTop())         ,;
              oGrid2:Refresh(.t.)    )
        */






   // open second xbrowse


SELECT 2
USE TEST ALIAS TEST

   oGrid3 := TXBrowse():New( oDlg )
   oGrid3:nTop    :=   oGrid2:nBottom+5
  // oGrid3:nTop    :=   oTab:nbottom+5
   oGrid3:nLeft   :=   nSplit+2
   oGrid3:nBottom :=    nGridBottom
   oGrid3:nRight  :=   nGridRight

   oGrid3:cAlias :=TEST->(Alias())
   oGrid3:SetRDD()
   oGrid3:CreateFromCode()









//First splitter

  @ oGrid2:nBottom+2, nSplit SPLITTER oSplit2 ;
                 HORIZONTAL  ;
                  COLOR CLR_RED ;
                   PREVIOUS CONTROLS oGrid2 ;
                   HINDS CONTROLS oGrid3 ;
                    SIZE  oGrid3:nRight, 2 PIXEL ;
                   OF oDlg ;
                   _3DLOOK ;
                 UPDATE





// second  Splitter

   @ 00, nSplit SPLITTER oSplit ;
      VERTICAL ;
       COLOR CLR_BLUE ;
      PREVIOUS CONTROLS oExBar;
      HINDS CONTROLS oGrid2, oGrid3, oSplit2;
      SIZE 1, nGridBottom PIXEL ;
      OF oDlg ;
      _3DLOOK ;
      UPDATE




   ACTIVATE DIALOG oDlg NOWAIT;
   ON INIT ExplBarInit( oExBar ) ;
  ON PAINT oSplit:AdjClient()



return nil






Function ResizeWndMain()
   local aClient
   if oDlg != NIL
      aClient := GetClientRect (oWnd:hWnd )
      oDlg:SetSize( aClient[4], aClient[3] - oWnd:oBar:nHeight - oWnd:oMsgBar:nHeight )
      // oApp():oDlg:Move(oApp():oDlg:nYMove,)
      oDlg:Refresh()
      SysRefresh()
   endif
return NIL






function ExplBarInit( oExBar )

   local oPanel1, oPanel2, oPanel3, oPanel4
   local bClick := { | o | MsgInfo( o:GetText() ) }

   oPanel1 = oExBar:AddPanel( "One", "people" )
   oPanel1:lSpecial = .T.
   oPanel1:AddLink( "First item", bClick, "additem" )
   oPanel1:AddLink( "Second item", bClick, "copy" )

   oPanel2 = oExBar:AddPanel( "Two", "case" )
   oPanel2:AddLink( "First item", bClick, "adddbf" )
   oPanel2:AddLink( "Second item", bClick, "delete" )
   oPanel2:AddLink( "Third item", bClick, "envelope" )
   oPanel2:AddLink( "Fourth item", bClick, "envelope" )

   oPanel3 = oExBar:AddPanel( "Three", "graphics" )
   oPanel3:AddLink( "First item", bClick, "adddbf" )

   oPanel4 = oExBar:AddPanel( "Four" )
   oPanel4:AddLink( "First item", bClick, "copy" )
   oPanel4:AddLink( "Second item", bClick, "additem" )

return nil
























 
it run ok the horizontal splitter run ok but often the tabs control

How YOU explain it ?

Re: To Antonio and all Simply Test ExplorerBar two browse, tab

Posted: Thu Aug 19, 2010 9:52 pm
by Silvio
Now I made a test with my system and with some helps of test of Daniel I resolved it
Thank to Daniel and James


Image

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 11:37 am
by Otto
Dear Silvio,

It is so kind of you that you always ask for help and then never post what you find out.

Best regards,
Otto

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 1:58 pm
by Uwe.Diemer
Ja so is er halt

Why Silvio are u using the computer of Mda Solution

A good "Friend" of you ?

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 2:05 pm
by Armando
Friends:

As usualy !.

Regards

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 3:26 pm
by Silvio
Uwe,

I 'm working for Mda Solution , It is' a criminal offense ?

Antonio Know this situation .


Otto,

I made the same of Daniel sources ( with 3 panels second solution ) ,

I must re pubblish the sources ?

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 3:31 pm
by Uwe.Diemer
I have glasses i can read without Bold Font

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Posted: Fri Aug 20, 2010 3:34 pm
by andresreyes_mzt
Otto,

I'm agree with you

Will be great if silvio shares his solution, but it's not her obligation



Uwe.Diemer,

It's not our business, Who is using somebody's computer, Who are their good "friends".
Including if you have any personal issue with Silvio, It's not our business.

Regards.