XBrowse alternating row colors

User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

I just tried James sample using FWH 8.01 and it seems to work fine here.

EMG
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

Enrico,

>I just tried James sample using FWH 8.01 and it seems to work fine here.

Thank you for reporting that.

James
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Post by wilsongamboa »

James Nice Sample
we compile with fwh 2.7 and xHarbour and works well

with only .dbf
with .dbf + Index
with .dbf + Index + Filter

Thanks

att
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

Wilson,

>we compile with fwh 2.7 and xHarbour and works well.

Thanks for reporting. This means it should work even with older versions of XBrowse.

James
User avatar
richard-service
Posts: 583
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:

Post by richard-service »

Hi James,

I fix I test. I add ::oBrw:Refresh() and work fine.
So your sample work fine.

Regards,

Richard
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

Richard,

>I fix I test. I add ::oBrw:Refresh() and work fine.

Good news. Thanks.

James
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post by nageswaragunupudi »

James Bott wrote:Richard and NageswaraRao,

I am at a loss as to why it isn't working for you. I'm thinking it must be differences in TXBrowse. NageswaraRao, didn't you say in another message thread that you are using a modified TXBrowse? Could you be linking in this instead of the standard FWH version?

I am using xHarbour, are you?

James
I use modified txbrowse for my software.

But when i test anything here for the forum discussions, I test with FWH 8.01 libraries only and do not use my extensions. Some time today i shall work again when i get some time and come out with the circumstances under which it breaks.
Regards

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

Post by nageswaragunupudi »

Mr James

James Bott wrote:Richard and NageswaraRao,

I am at a loss as to why it isn't working for you. I'm thinking it must be differences in TXBrowse. NageswaraRao, didn't you say in another message thread that you are using a modified TXBrowse? Could you be linking in this instead of the standard FWH version?

I am using xHarbour, are you?

James
I have tested using exact copy of your code with unmodified libraries of FWH 8.01. The problem I reported arises occasionally under different circumstances. One I report here.

1) Please start your application.
(a) Resize the window to increase the height to bring into visibility one more row. Now thre are odd number of rows. Make sure that the number of rows displayed is an odd number.
(b) Click on 2nd row. Then click on 4th tow. Then keep clicking on even rows till the last even row.
This is the result of the screen shot.

Image

There are quite a few other circustances when the logic fails. But I hope one example is enough.

I still feel there is no substitute for the Browse calling the color codeblock with the visible row number as a parameter as we earlier discussed about tcbrowse class.
Regards

G. N. Rao.
Hyderabad, India
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

NageswaraRao,

I see the problem you described. I will have to think about a solution.

>I still feel there is no substitute for the Browse calling the color codeblock with the visible row number as a parameter as we earlier discussed about tcbrowse class.

This does not seem so easy. In addition to the visible row number you would also need to know which color the first row was in order to figure out which color to make the current row. So you would need var to keep track of this and you would have to update it each time the first visible row was a new record. Then you would have to calculate the color of the current row based on the color of the first row and the row number of the current row.

James
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post by nageswaragunupudi »

James Bott wrote:NageswaraRao,

This does not seem so easy. In addition to the visible row number you would also need to know which color the first row was in order to figure out which color to make the current row. So you would need var to keep track of this and you would have to update it each time the first visible row was a new record. Then you would have to calculate the color of the current row based on the color of the first row and the row number of the current row.

James
Yes. All that is taken care of in my tcbrowse solution. You just check if it is even or odd. Please make the modifications i suggested to tcbrowse class it will work without problem.
Regards

G. N. Rao.
Hyderabad, India
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

Hello NageswaraRao,
was this the solution you suggested?

Best regards,
Otto

oBrw:bClrStd := { || Colores() }

//-----------------------
STATIC FUNCTION Colores()
LOCAL aCol:={}
IF (ordkeyno()) % 2 == 0
aCol:={CLR_BLACK, RGB(193,221,255) }
ELSE
aCol:={CLR_BLACK, RGB(221,245,255) }
ENDIF
RETURN (aCol)
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post by nageswaragunupudi »

no
Regards

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

Post by nageswaragunupudi »

Regards

G. N. Rao.
Hyderabad, India
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

Thank you.
I don't use TCBROWSE.
But the code I posted works for me.
Regards
Otto
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

You can use this line with TXBrowse and it elminates the problem described by NageswaraRao.

oBrw:bClrStd:= {|| if( (cAlias)->(ordkeyno()) % 2 == 0 ,{ CLR_BLACK, COLOR_LIGHT },{ CLR_BLACK, COLOR_DARK }) }

However, I understand that ordkeyno() is very slow with ADS so you probably can't use it with ADS.

James
Post Reply