Or, the same example using an array:
<code>
Local testform

testform = CreateObject("colorform")
testform.show(1)


Define Class colorgrid as Grid
DIMENSION aColors[3,2]
aColors[1,1] = Rgb(255,0,0)
aColors[2,1] = Rgb(0,0,255)
aColors[3,1] = Rgb(0,255,0)
aColors[1,2] = Rgb(0,0,255)
aColors[2,2] = Rgb(255,0,0)
aColors[3,2] = Rgb(255,255,0)

columncount = 2
height = 200
left = 24
top = 18
width = 320
column1.dynamicbackcolor = "this.aColors[RECNO('testing'),1]"
column2.dynamicbackcolor = "this.aColors[RECNO('testing'),2]"
*- Note the column# here!
EndDefine

Define Class colorform as Form
datasession = 2
Add Object grid1 as colorgrid
Procedure load
Create Cursor testing (col1 c(15), col2 c(15)) 
Insert into testing values ("red", "blue") 
Insert into testing values ("blue", "red") 
Insert into testing values ("green", "yellow") 
LOCATE
EndProc 
EndDefine
</code>

-----Oorspronkelijk bericht-----
Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Namens Whil Hentzen (Pro*)
Verzonden: vrijdag 27 juli 2007 0:15
Aan: [EMAIL PROTECTED]
Onderwerp: VFP-9 Grid column colors, revisited

In a message long, long ago (Feb 07), Sytze asked about changing 
different grid columns as well as rows with DynamicBackColor:

 > I have a grid with an INIT like:
 > thisform.Grid1.SetAll("DynamicBackColor","IIF(calltype="IN",
 > RGB(192,192,192),RGB(255,255,255))", "Column")
 >
 > This give me an easy way to differentiate an IN call from an OUT call,
 > on different ROWS.
 >
 > It looks like this prevents me from having a specific COLUMN in a
 > different color from the rest. Is this true ?

Sietse Wijnker then responded:

> The 3rd param in the SetAll method is to specify the class where the
> property is set. In this case specifying the column-class isn't needed
> because the DynamicBackColor property only applies to the columns.
> The SetAll sets all columns DynamicBackColor property to the specified
> value. If you want a specific column display in another color, you'll have
> to reset the DynamicBackcolor property or at least alter it.
> B.T.W. The expression in all the dynamic properties are evaluated in the
> scope of the grid, not the column, so using 'this.' in the expression
refers
> to the grid!

I'm trying to take this one step further. I would like to change the 
backcolor of any cell in a grid. I've got a cursor supporting the grid, 
with columns named c1, c2, etc., and an array of colors that map to the 
cursor, like so:

       col1  col2
row1  green red
row2  red   yellow
row3  blue  yellow

and want to use that as the dynamic back color for each cell in the grid.

And I'm close, oh so close....

Option 1:
   thisform.grid.setall("DynamicBackColor", ;
     "eval(thisform.aCellColor[recn('csrGrid'), ;
                               <some expression>],) ;
     ")

but no matter how much fidgeting I do, I can't get anything to work for 
'some expression' that will return the column number in the same manner
as recn() works for the row number.

Option 2:
I've also tried spinning through each column, setting dynamicbackcolor 
for just that column, but that has no effect:

   thisform.grid.column1.dynamicbackcolor ;
     = thisform.aCellColor[recn('csrGrid'),1]

but this puts the same color in every row - so column 1 is green for 
rows 1->3.

Ideas?

Whil


[excessive quoting removed by server]

_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: http://leafe.com/archives/byMID/profox/[EMAIL 
PROTECTED]@sw-software.nl
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to