From: Harry Ohlsen Date: 2002-07-06T00:06:49+09:00 Subject: Re: Tk configuration issue In an example such as Phlip gave, it would be nice to be able to pass a value to the block, as in ... line = TkcLine.new(aCanvas, [fromX, fromY, toX, toY]) { |color| fill color } but there's no way to specify the values to pass into such a block ... at least not that I know of. If such a mechanism was available, then one could do something like pass in a reference to the parent object, hence allowing access to its instance variables class Fred attr_reader :color def initialize(color) @color = color end def create_line line = TkcLine.new(aCanvas, [fromX, fromY, toX, toY]) { |parent| fill parent.color } end end Obviously, in the code above, the block parameter "parent" has not been given a value, hence the block won't achieve what we want. We need some way to set it to "self" in this case. Of course, coming up with a syntax for this may be pretty pointless, since the amount of code required is probably going to be equivalent to setting some local variables that will then be in scope for the block (as Phlip did in his first example). Sorry, just thinking out loud, in case it suggests an idea to someone. I've been caught by this a number of times when writing Tk code.