<HTML><FONT FACE=arial,helvetica><FONT COLOR="#000000" FACE="Geneva" FAMILY="SANSSERIF" SIZE="2">I decided to finally cut the chord with HC and get with Revolution. I started to bang out my little project and saw this nifty little Table option in the Inspector. Oh boy...I have always wanted this! I played with it for 20 minutes, went through the documentation for 30 minutes, dowloaded the 45MB revlist archive and then played with it for 3 hours. Such is the life of a wannabe programmer. Anyways, I was right there with Graham and Jane as they discussed these tables in the list and in response I came up with a stack that explores this critter. <BR>
<BR>
If you want the stack it is at ... http://www.christophercomputers.com/rev.html<BR>
<BR>
Here are the notes which may suffice ...<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>The 'cREVTable' custom property set.<BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">I first set out to use the cREVTable values as a means of keeping people from going off the edge of the table and causing it to scroll right or down.<BR>
<BR>
To discover that set and the values associated with it. I downloaded MetaCard's demo opened up this same stack and double-clicked on the field with the pointer tool. That gave me the Field Properties and then I clicked the Extras tab and clicked the Custom Properties button. In that window I could select the cREVTable set and then see all these things I have listed here.<BR>
<BR>
Now some of these are very useful (currentXcell and currentYcell) and some of these are superfluous (bottomFieldLoc and topFieldLoc) as they match the object parameters and others simply don't work. For instance, you would think that currentCell would be the x,y cell location but instead it always says '3,2' Note that tCell also says this. Go figure!   Some the others are strange, too, such as the mouseLoc and cellEdit.<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>They have a serious scrolling problem.</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"> <BR>
Notice how I made this table 3.5 colums wide? That is so you can click on the 3rd column without causing it to scroll over. You will see this behaviour if you click on the fourth column. So for my application, I will draw it oversized like this but I will throw some sort of graphic on top of the fourth column to keep out unwanted clicks. Same problem at the bottom by the way. Very annoying but you can get around it.<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>The target function is tweaked </FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>when the table is the target.</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><BR>
 You do NOT get back 'field"table1" ' or something like that. Instead you get 'revCell-3,6' no matter which table you picked and no matter what the name of the table was. So if you need to differentiate between two tables then you will probably have to do something with clickLoc and calc it out. The silver-lining here is that after the revCell part are the x,y cell coordinates and you do at least know that it was a table !<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>Tables don't get messages. <BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">That's right I said it ... string me up. You click on a table or do anything like that and you can forget a nice field script to trap and check the data. You will need to put in the card script which brings me to the next "challenge"<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>RawKeyData baby!<BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">The only means I have so far to control this puppy is to parse keystrokes. In the card script you can see that I hard coded my table size (xLimit and yLimit) and then trapped for arrows and tabs and other such things to deal with the scroll. This would also be the place to prevent unwanted keystrokes. For example, I trapped for the [enter] key which allows one to put multiple lines into a cell. This is NOT the place to validate data only to trap keys. <BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>Data Validation<BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">This is tricky so pay attention. If you trap keys then you are ahead of the data being "entered". If you look at the card script you will see that the 'showCustomSetValues' are being called '20 milliseconds' after the keystroke has been passed. This is the point at which you would check cellValue and make any changes. So what if you want to change the data now. Well ... I'm not sure I see any betterway than to grab the field data and make the change like you normally would. Bummer huh.<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>Other things<BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">I played with getting to the end of my matrix and using the 'click' command to wrap around and go to the first cell of the next row. However,   I crashed Rev several times with that and gve up.<BR>
<BR>
Don't even think of trying to align the text within the cells. It will kill your table and that actually is in the documentation.<BR>
<BR>
The cell formatting featue does appear to work although the inspector settings are a tad obtuse at first. <BR>
<BR>
Every time I go to the Table pane in the inspector it turns my scroll bars back on. argh.<BR>
<BR>
I have not tried this as a runtime application yet. Geez. I hope it works.<BR>
<BR>
</FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2"><U>Dear Rev Team<BR>
</U></FONT><FONT COLOR="#000000" FACE="Lucida Grande" LANG="0" SIZE="2">You guys are great. Great program. Great company. This will be a great feature with just a tad more work and some documentation!</FONT><FONT COLOR="#000000" FACE="Geneva" FAMILY="SANSSERIF" SIZE="2"></FONT></HTML>