if you use Super headers of TsBrowse you'll crash.
I corrected this in 6.13. but after some other misbehaviours i changed to Hernan's browse.
I modified the METHOD TSBrowse:DrawSuper().
Because a variable nI was running from nS to Len( aSuperHead ) + 1 a bound error happened.
For nI := nS To Len( aSuperHead ) + 1
If nStartCol > nMaxWidth
Exit
EndIf
If nI <= Len( aSuperHead )
nClrFore := If( ValType( aSuperHead[ nI, 4 ] ) == "B", ;
Eval( aSuperHead[ nI, 4 ] ), aSuperHead[ nI, 4 ] )
nClrBack := If( ValType( aSuperHead[ nI, 5 ] ) == "B", ;
Eval( aSuperHead[ nI, 5 ] ), aSuperHead[ nI, 5 ] )
lBrush := Valtype( nClrBack ) == "O"
If ( lDegrad := ValType( nClrBack ) == "A" )
nClrTo := nClrBack[ 2 ]
nClrBack := nClrBack[ 1 ]
nClrTo := If( ValType( nClrTo ) == "B", Eval( nClrTo ), nClrTo )
nClrBack := If( ValType( nClrBack ) == "B", ;
Eval( nClrBack ), nClrBack )
EndIf
cHeading := aSuperHead[ nI, 3 ]
cHeading := If( Valtype( cHeading ) == "B", Eval( cHeading ), cHeading )
lMultiLine := Valtype( cHeading ) == "C" .and. At( Chr( 13 ), cHeading ) > 0
l3DLook := aSuperHead[ nI, 6 ]
hFont := aSuperHead[ nI, 7 ]
lBitMap := aSuperHead[ nI, 8 ]
lAdjBmp := aSuperHead[ nI, 9 ]
nLineStyle := aSuperHead[ nI, 10 ]
nClrLine := aSuperHead[ nI, 11 ]
nHAlign := aSuperHead[ nI, 12 ]
nVAlign := aSuperHead[ nI, 13 ]
lTransp := If( lBitMap, If( aSuperHead[ nI, 14 ], 1, 2 ), 0 )
Else
cHeading := ""
nWidth := ::nPhantom
lBitmap := .F.
lTransp := 0
nClrBack := If( ::nPhantom == -2, nClrPane, nClrBack )
EndIf
if nI <= Len( aSuperHead )
If ::aColumns[ aSuperHead[ nI, 1 ] ]:l3DTextHead != Nil
l3DText := ::aColumns[ aSuperHead[ nI, 1 ] ]:l3DTextHead
nClr3dL := ::aColumns[ aSuperHead[ nI, 1 ] ]:nClr3DLHead
nClr3dS := ::aColumns[ aSuperHead[ nI, 1 ] ]:nClr3DSHead
nClr3dL := If( ValType( nClr3dL ) == "B", ;
Eval( nClr3dL, 0, nStartCol ), nClr3dL )
nClr3dS := If( ValType( nClr3dS ) == "B", ;
Eval( nClr3dS, 0, nStartCol ), nClr3dS )
Else
l3DText := nClr3dL := nClr3dS := Nil
EndIf
EndIf
TSDrawCell( hWnd, ; // 1
hDC, ; // 2
0, ; // 3
nStartCol, ; // 4
nWidth, ; // 5
cHeading, ; // 6
nHAlign, ; // 7
nClrFore, ; // 8
nClrBack, ; // 9
hFont, ; // 10
lTransp, ; // 11 0 = No Bitmap 1 = Transparent 2 = Opaque
nHeightHead, ; // 12
l3DLook, ; // 13
nLineStyle, ; // 14
nClrLine, ; // 15
3, ; // 16 1=Header 2=Footer 3=Super
nHeightHead, ; // 17
nHeightFoot, ; // 18
nHeightSuper, ; // 19
lAdjBmp, ; // 20
lMulTiLine, ; // 21
nVAlign, ; // 22
0, ; // 23 nVertLine
nClrTo, ; // 24
lDegrad, ; // 25
If( lBrush, ;
nClrBack:hBrush, 0 ), ; // 26
l3DText, ; // 27 3D text
nClr3dL, ; // 28 3D text light color
nClr3dS ) // 29 3D text shadow color
nStartCol += nWidth
nWidth := 0
If nI < Len( aSuperHead )
For nJ := aSuperHead[ nI + 1, 1 ] To aSuperHead[ nI + 1, 2 ]
nWidth += aColSizes[ nJ ]
Next
EndIf
Next