in reply to Re^4: SuDoTKu - version 2
in thread SuDoTKu - version 2

my fear is that I'm going to create the same number of objects as before, if not more. In my original design

Well then stick it all in a big hash and don't use objects, that is the way I usually do it. Hashes are very fast. Then you will only be creating 1 widget the canvas, and it is very fast internally to configure it's "items'. I usually end up building some big hash with all the variables tucked away nicely. You should be able to setup a hash with entries like:

$cells{ $number } {$corner }{'value'} = 9; # and do things like: $canvas->itemConfigure( $cells{ $number } {$corner }{'obj'} , -state=> +disabled); #or whatever
There is a certain technique to setting up the hashes properly so you can get to anything you need. Like a text item is an item on the canvas, with a hash reference, so you can't use the hashrefs as a changable key. That is why I showed things like $cell{$number}{$corner}{'obj'} to hold the hashref and $cell{$number}{$corner}{'value'} to hold the value. However, the value can be extracted from the hashref like my $num =$canvas->itemCget($hashref, -text).

Like I said there are alot of tricks and clever things you can do with the canvas items. "Juggle with the hash" :-)

It will be faster than alot of button objects. What usually slows a canvas down is it's size, but your canvas size should be pretty small.


I'm not really a human, but I play one on earth. flash japh