>It already works for me. I have a generic one-column grid for displaying names, and it's based on a cursor with several columns more - crcolor i, crbold l, critalic l - and .column1.dynamicbackcolor='alias.crcolor', and it goes the same for .dynamicfontbold and .dynamicfontitalic. The trick is to pre-fill the .crcolor with 0x00ffffff (white) initially, and then pick different color numbers to color the records. This is the fastest coloring trick I've found so far, since it calculates nothing - it just takes the color number from another field in the same record. True, the pre-fill does take some time, but then the values are calculated only once, and not upon each grid.refresh.
I seem to be talking to myself a lot today.
Forgot the other part of the trick: to change the color, bold or italic attribute, just replace the value in the corresponding fields of the current record. I'm not sure if it needs a grid.refresh or not - the framework may be issuing the refreshes, I don't remember, and since there's no code in grid's refresh, and the dynamic properties don't have any function or method calls in them, you don't even see the grid's refresh in the debugger.
I store the values of the colors in a form array property, usually some four or five of them (for different statuses of the people or things displayed). I don't really use the rgb(), I simply do _cliptext=tran(getcolor(), "@0") in the command window, and paste the value in the code of form's .load (for each row in turn), so it's all there when grid's .init fires. It looks like
this.errorcolor[1]=0x00FFF0F7
this.errorcolor[2]=0x00FFFF80
this.errorcolor[3]=0x0080FFFF
this.errorcolor[4]=0x00FFC1FF
this.errorcolor[5]=0x00B0B0FF