On 3/10/14, 7:15 AM, Terence Heaford wrote:
repeat for each item tCellData in tFldData put tCellData into fld tFldNum of me set the backgroundColor of fld tFldNum of me to tBackColor set the foregroundColor of fld tFldNum of me to tForeColor add 1 to tFldNum end repeat
This will be the speed bottleneck. Array access is very fast, faster than almost any other method. As noted here, variable access is the fastest, followed by access to custom properties, but the difference is so minimal as to be insignificant. But manipulating field content is one of the slowest things a script can do, for several reasons. So whenever possible, you need to minimize the number of times a script accesses a field.
Locking the screen as you did to prevent redraw lag is a good start. That's sometimes enough for a small number of updates. If it isn't, grab the field content, manipulate it all at once, and then put it back.
Since colors can only be applied directly to fields, you can't manipulate those in variable. But you can create htmltext and then set the field's htmltext at one go. In this case that's what I'd do. To get proper html for the field, just manually set up the field colors once and put the field's htmltext into the message box. Use that text as a template to script the changes. I frequently store template htmltext as a custom property of the field, with merge markers ("[[tBackColor]]"). Then when I need to update the htmltext, I use the merge command. It's a one-liner and very fast.
I think if you use this method you will notice a dramatic increase in speed. -- Jacqueline Landman Gay | jac...@hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode