xBrowse Adjust Last Column

xBrowse Adjust Last Column

Postby Daniel Garcia-Gil » Mon Mar 16, 2009 6:44 am

Esta adaptacion esta hecha a sugerencia del colega William Morales, espero haber captado la idea
This adaptation was suggest by William Morales

Se trata de ajustas la ultima columna del browse al ancho restante disponible, para que no quede ningun espacio vacio....
Adjust Last Column browse of the remaining available width, so that no empty space ....

les dejo un ejemplo a descargar, si desean probar...
Let a sample for test..

http://www.sitasoft.com/fivewin/test/xbcoladj.rar

Archivo a Modificar / File to Change
XBROWSE.PRG

Metodo a modificar /METHOD To Change
LastDisplayPos( )

ABRIR/OPEN XBROWSE.PRG
AGREGAR NUEVA DATA en TXBrowse / ADD NEW DATA in TXBrowse

Code: Select all  Expand view
  DATA lAdjustLastCol AS LOGICAL INIT .F.



BUSCAR EN/FIND IN METHOD LastDisplayPos( lComplete ) CLASS TXBrowse

Code: Select all  Expand view
  if lComplete .and. nWidth >= nMaxwidth


EN LINEA AGREGAR DESPUES/ INLINE ADD AFER

Code: Select all  Expand view
.and. !::lAdjustLastCol


BUSCAR/FIND

Code: Select all  Expand view
return nPos


AGREGAR ANTES/ ADD BEFORE

Code: Select all  Expand view
  if ::lAdjustLastCol .and. nPos = nLen
      if nWidth < nMaxwidth
          ::ColAtPos( nPos ):nWidth += ( nMaxWidth - nWidth - COL_SEPARATOR )
      elseif nWidth > nMaxwidth
          ::ColAtPos( nPos ):nWidth -= ( nWidth - nMaxWidth + COL_SEPARATOR )
      endif
   endif


Code: Select all  Expand view
#include "FiveWin.ch"
#include "xbrowse.ch"

function main()

   local oWnd1
   local oBrw
   local aArray1 := {}
   local nI
   
   
   for nI = 1 to 20
   aadd( aArray1, { .f.,SPACE(20),;
                                "Row:"+StrZero(nI,2)+" Col:02",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03" } )
   next
   
   
   DEFINE window oWnd1 Title "Test Adjust Last Column xBrowse"
   
   
   oBrw:= txbrowse():new( oWnd1 )
   oBrw:nRowHeight := 40
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:SetArray( aArray1 )
   oBrw:nMarqueeStyle := 6
   oBrw:CreateFromCode()
   oBrw:bClrStd := {|| { CLR_BLACK,RGB( 193,221,255 ) } }
   oBrw:lRecordSelector := .f.
   
   oBrw:lAdjustLastCol := .t.
   
   oWnd1:oClient = oBrw
   
   ACTIVATE window oWnd1

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

Re: xBrowse Adjust Last Column

Postby Antonio Linares » Mon Mar 16, 2009 7:32 am

Daniel,

Thanks! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xBrowse Adjust Last Column

Postby anserkk » Mon Mar 16, 2009 8:42 am

Dear Mr.Antonio,

Can we expect these recent xBrowse changes in the next FWH build.

Regards

Anser
User avatar
anserkk
 
Posts: 1332
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: xBrowse Adjust Last Column

Postby nageswaragunupudi » Sat Mar 21, 2009 6:54 pm

This facility already exists in xbrowse without any change.

oBrw:nStretchCol := STRETCHCOL_LAST

With this setting, xbrowse fits ( or streches ) the last column to fit the width of the browse.

This may not look nice if the last column is a small numeric column. In such cases, there is another setting :

oBrw:nStretchCol := STRETCHCOL_WIDEST

With this setting, xbrowse stretches the widest character column to fit the width of the browse.

I hope I understood the original purpose of the posting correctly
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10624
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse Adjust Last Column

Postby Daniel Garcia-Gil » Sat Mar 21, 2009 7:10 pm

Hello nageswaragunupudi

Thank for you feedback,
every day we learn new things...
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: xBrowse Adjust Last Column

Postby Daniel Garcia-Gil » Sun Mar 22, 2009 1:45 pm

Hello Mr. Rao

to use nStretchCol property does browse so slow, apparently always recalculating the column widths
this effect is visible when does use nEditType >= EDIT_LISTBOX

check this samples and click any button or resize any columns or rows...

thank for you attention
Code: Select all  Expand view
#include "FiveWin.ch"
#include "xbrowse.ch"

function main()

   local oWnd1
   local oBrw
   local aArray1 := {}
   local nI
   
   
   for nI = 1 to 20
   aadd( aArray1, { .f.,SPACE(20),;
                                "Row:"+StrZero(nI,2)+" Col:02",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03",;
                                "Row:"+StrZero(nI,2)+" Col:03" } )
   next
   
   
   DEFINE window oWnd1 Title "Test Adjust Last Column xBrowse"
   
   
   oBrw:= txbrowse():new( oWnd1 )
   oBrw:nRowHeight := 40
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:SetArray( aArray1 )
   oBrw:nMarqueeStyle := 6
   oBrw:CreateFromCode()
   oBrw:bClrStd := {|| { CLR_BLACK,RGB( 193,221,255 ) } }
   oBrw:lRecordSelector := .f.
   
   oBrw:aCols[ 3 ]:nEditType := EDIT_LISTBOX
   oBrw:aCols[ 4 ]:nEditType := EDIT_BUTTON
   
   oBrw:nStretchCol := STRETCHCOL_LAST

   
   oWnd1:oClient = oBrw
   
   ACTIVATE window oWnd1

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

Re: xBrowse Adjust Last Column

Postby nageswaragunupudi » Sun Mar 22, 2009 5:46 pm

Yes.

Stretched columns and EditListBoxes do not go together well. Once the listbox is activated, the flicker starts.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10624
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 99 guests