Hello,
I am converting to xBrowse.
How can I change the color of the place below the rows if there are less rows than fit in the browse.
Thanks,
Willy
Hello,
I am converting to xBrowse.
How can I change the color of the place below the rows if there are less rows than fit in the browse.
Thanks,
Willy
Willi,
try oBrw:SetColor (<nFore>,<nBack>)
Sorry but this does not work.
Only the background of the lines is set.
I want the whole panel colored if there are few lines in the browse.
Example. The brwose has place for 25 lines.
In the beginning there are only 2 records added.
I want that the place below those lines is also colored.
Thanks for the reply Stefan.
Willy
Willy,
Class TXBrowse Method Paint() makes this call:
FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
so it should fill all its entire surface
Thanks Antonio,
Indeed that line paints the area but when the rows are painted it is overwritten in a blank area.
I Think this is done in the dispend method of the Windows Class.
Is this browse painted correctly in your screens.
I use the xbrowse in a dialog and nog in a window. Could that make a difference.
I do some more tests.
Thanks,
Willy.
Antonio,
Is this still a problem everywhere.
Is it possible to paint the whole area in a specified color or am I the first who want to try it.
Thanks,
Willy
Willy,
Are you able to reproduce the bug using samples\TestXBrw.prg ?
Antonio,
I tried the testxBrowse program.
I think I found something.
The whole panel is not colored when you use a dialog with resources.
That is exactly what I do in my tests.
In the other screens the screen is paited correctly.
I use Workshop for all my screens. So it is important for me.
Greetings,
Willy
Anyone ?
Willy,
Sorry, we have been busy and couldn't test it. We are going to review it asap
OK
STATIC FUNCTION NewDialog( oWnd )
local oDlg, oBrw
DEFINE DIALOG oDlg RESOURCE "TEST" OF oWnd
oBrw := TXBrowse():New( oWnd )
oBrw:CreateFromResource( 101 )
oBrw:SetArray( { { "first", "row" }, { "second", "row" } } )
oBrw:aCols[ 1 ]:cHeader = "An array"
oBrw:aCols[ 2 ]:cHeader = "test"
oBrw:aCols[ 1 ]:bClrStd = { || { CLR_WHITE, CLR_BLUE } }
oBrw:aCols[ 2 ]:bClrStd = { || { CLR_WHITE, CLR_BLUE } }
ACTIVATE DIALOG oDlg ;
ON INIT oBrw:SetColor( CLR_WHITE, CLR_BLUE )
RETURN NIL
This is doing the job.
Thanks Antonio.