To Antonio and all Simply Test ExplorerBar RESOLVED!

User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

To Antonio and all Simply Test ExplorerBar RESOLVED!

Post 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
Last edited by Silvio on Fri Aug 20, 2010 1:25 am, edited 1 time in total.
Best Regards, Saludos

Falconi Silvio
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

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

Post 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
 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

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

Post 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
Best Regards, Saludos

Falconi Silvio
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

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

Post 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
 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

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

Post 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
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

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

Post 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
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

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

Post 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 !
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

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

Post 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 ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

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

Post 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
Best Regards, Saludos

Falconi Silvio
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post 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
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org

********************************************************************
User avatar
Uwe.Diemer
Posts: 81
Joined: Mon Aug 09, 2010 11:00 am

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post by Uwe.Diemer »

Ja so is er halt

Why Silvio are u using the computer of Mda Solution

A good "Friend" of you ?
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post by Armando »

Friends:

As usualy !.

Regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post 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 ?
Best Regards, Saludos

Falconi Silvio
User avatar
Uwe.Diemer
Posts: 81
Joined: Mon Aug 09, 2010 11:00 am

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post by Uwe.Diemer »

I have glasses i can read without Bold Font
User avatar
andresreyes_mzt
Posts: 70
Joined: Fri Jan 11, 2008 6:55 am
Location: Mexico
Contact:

Re: To Antonio and all Simply Test ExplorerBar RESOLVED!

Post 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.
{{{ ---- xharbour + Borland C --- }}}
Post Reply