FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour show bitmaps on Header and columns with Xbrowse
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
show bitmaps on Header and columns with Xbrowse
Posted: Mon Jan 12, 2009 01:27 AM
To create a column in xbrowse I use this line

oCol:= oApp():AddCol()
oCol:AddResource("sort1")
oCol:AddResource("sort2")
oCol:AddResource("GRADO1")
oCol:AddResource("GRADO2")
oCol:AddResource("GRADO3")
oCol:AddResource("GRADO4")
oCol:AddResource("GRADO5")
oCol:AddResource("GRADO6")
oCol:AddResource("GRADO7")
oCol:AddResource("GRADO8")
oCol:AddResource("GRADO0")
oCol:cHeader := "Grado"
oCol:bStrData := { || (oDCli)->GRADO}
oCol:bBmpData := { || (oDCli)->GRADO}
oCol:nWidth :=40

oCol:bLClickHeader :={ ||(Sel_Index(5,oDCli) ,;
oApp():=5,;
oApp():refresh()) }

Problem :

I want use for show bitmaps on column from 3° bitmap to 11° bitmap
oCol:AddResource("GRADO1")
oCol:AddResource("GRADO2")
oCol:AddResource("GRADO3")
oCol:AddResource("GRADO4")
oCol:AddResource("GRADO5")
oCol:AddResource("GRADO6")
oCol:AddResource("GRADO7")
oCol:AddResource("GRADO8")
oCol:AddResource("GRADO0")


and the first and second bitmap only for the header :

oCol:AddResource("sort1")
oCol:AddResource("sort2")


the field oCol:bStrData := { || (oDCli)->GRADO}
is numeric ( N 1)

How I can make it ?
Someone can help me please ?
Best Regards, Saludos



Falconi Silvio
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: show bitmaps on Header and columns with Xbrowse
Posted: Mon Jan 12, 2009 02:46 AM
for change bitmap on header use...
DATA nHeadBmpNo // header ordinal bitmap to use of ::aBitmaps

for change bitmap on cell use...
bBmpData // Ordinal bitmap data codeblock (returns a number in the range 1-len(aBitmaps))

use original fivewin bitmap, from folder \FWH\bitmaps\16x16
#include "FiveWin.ch"
#include "xbrowse.ch"

// xbrowse imagen button get

static aCellSelected

function main()

local oDlg, oBrw
local aArray := {}
local uVal
local nI
local oGet, oBtn
local nWdGet := 0

for nI = 1 to 20
aadd( aArray, { StrZero(nI,2),;
								3,;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ),;
								SPACE( 5 ) } )
next

DEFINE DIALOG oDlg Title "Test xBrowse III " size 700,300


oBrw:= txbrowse():new( oDlg )
oBrw:nRowHeight := 25
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL //MARQSTYLE_HIGHLROWMS //
oBrw:SetArray( aArray )
oBrw:lFastEdit = .t.
oBrw:CreateFromCode()


for nI = 2 to len( oBrw:aCols )
	oBrw:aCols[ nI ]:AddBmpFile( "gobottom.bmp" )
  oBrw:aCols[ nI ]:AddBmpFile( "gotop.bmp" )
	oBrw:aCols[ nI ]:bLClickHeader := { | nRow, nCol, nFlags, oCol | 	if ( oCol:nHeadBmpNo == 1, oCol:nHeadBmpNo := 2, oCol:nHeadBmpNo := 1 ) }
	oBrw:aCols[ nI ]:nHeadBmpNo := 1
next

oBrw:aCols[ 2 ]:AddBmpFile( "textbox.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "tips.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "toback.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "tofront.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "toggle.bmp" )
oBrw:aCols[ 2 ]:AddBmpFile( "togrid.bmp" )
oBrw:aCols[ 2 ]:nEditType := EDIT_GET
oBrw:aCols[ 2 ]:bBmpData := {|| if( empty( oBrw:aCols[ 2 ]:value() ), 1, oBrw:aCols[ 2 ]:value() ) } 
oBrw:aCols[ 2 ]:bEditValid := {| oEdit | oEdit:value() > 2 }

oDlg:oClient := oBrw

ACTIVATE DIALOG oDlg center on init oDlg:Resize()

return nil
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Re: show bitmaps on Header and columns with Xbrowse
Posted: Mon Jan 12, 2009 10:40 AM

your sample run ok but I must correction this sources

                                     oCol:= oApp():oGrid:AddCol()
                                      oCol:AddResource("sort1")
                                      oCol:AddResource("sort2")
                                      oCol:nHeadBmpNo    := 2
                                      oCol:nHeadBmpAlign := AL_RIGHT
                                      oCol:bLClickHeader :={ ||(Sel_Index(7,oDCli) , oApp():oTab:nOption:=7,oApp():oTab:refresh()) }
                                      oCol:AddResource("DOCENTE")
                                      oCol:AddResource("ALUNNO")
                                      oCol:AddResource("CARTELLA")
                                      oCol:AddResource("GENITORE")
                                      oCol:AddResource("ESTERNO")
                                      oCol:bStrData := { || (oDCli)->ATTIVITA}
                                      oCol:cHeader  := "Tipo"
                                      oCol:bEditValue := { || (oDCli)->ATTIVITA }
                                      oCol:nDataStyle := oCol:DefStyle( AL_LEFT, .T.)
                                      oCol:bBmpData := { || (oDCli)->Attivita}
                                      oCol:nWidth   :=40




                                      oCol:= oApp():oGrid:AddCol()
                                      oCol:AddResource("sort1")
                                      oCol:AddResource("sort2")
                                       oCol:cHeader  := "Grado"
                                      oCol:nHeadBmpNo    := 2
                                      oCol:nHeadBmpAlign := AL_RIGHT
                                      oCol:bLClickHeader :={ ||(Sel_Index(6,oDCli) , oApp():oTab:nOption:=6,oApp():oTab:refresh()) }

                                      oCol:AddResource("GRADO1")
                                      oCol:AddResource("GRADO2")
                                      oCol:AddResource("GRADO3")
                                      oCol:AddResource("GRADO4")
                                      oCol:AddResource("GRADO5")
                                      oCol:AddResource("GRADO6")
                                      oCol:AddResource("GRADO7")
                                      oCol:AddResource("GRADO8")
                                      oCol:AddResource("GRADO0")

                                      oCol:bStrData := { || (oDCli)->GRADO}
                                      oCol:bBmpData := { || (oDCli)->GRADO}
                                      oCol:nWidth   :=40

.......

Stat FUNC Sel_Index(n,cdbf)
// 1 3 4 6 11 7 8
(cdbf)->(OrdSetFocus(n))
if n = 1
oApp():oGrid:aCols[1]:nHeadBmpNo := 1
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif n = 2
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 1
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif n = 3
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 1
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif n = 4
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo :=1
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif n = 5
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 1
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif   n = 6
oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 1
  oApp():oGrid:aCols[7]:nHeadBmpNo := 2

elseif n = 7

oApp():oGrid:aCols[1]:nHeadBmpNo := 2
oApp():oGrid:aCols[3]:nHeadBmpNo := 2
oApp():oGrid:aCols[4]:nHeadBmpNo := 2
oApp():oGrid:aCols[6]:nHeadBmpNo := 2
oApp():oGrid:aCols[11]:nHeadBmpNo := 2
oApp():oGrid:aCols[8]:nHeadBmpNo := 2
oApp():oGrid:aCols[7]:nHeadBmpNo := 1



//aggiungere per tipo

endif

(cdbf)->(DBGoTop())
oApp():oGrid:Refresh()
oApp():oGrid:SetFocus()
RETURN (NIL)

Best Regards, Saludos



Falconi Silvio

Continue the discussion