------art_35784_8290629.1145020606024
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Thank you that really cleared things up :)

But I don't understand this line though
>entry.bind('Return', proc{button.invoke})

It doesn't seem to make any difference whether I include it in the program
or not. I tried to read about it in the documentation, but I only understood
that it had something to do with invoking the command of the button.

2006/4/14, Hidetoshi NAGAI <nagai / ai.kyutech.ac.jp>:
>
> Hmmm... There are some problems.
>
> From: "Jeppe Jakobsen" <jeppe88 / gmail.com>
> Subject: Re: Q about tk buttons
> Date: Thu, 13 Apr 2006 22:33:18 +0900
> Message-ID: <99b4ad3b0604130633t48adb432n4417c3fd27f3b8f4 / mail.gmail.com>
>
> > require "tk"
> > #methods
> > def guess
> >     if (guess.value == right_guess.value)
> >         status.value = "Correct!"
> >     else
> >         number_of_guess.numeric += 1
> >         status.value = "Sorry, no luck"
> >     end
> > end
>
> Probably, you'll want to refer local variables on main.
> But those variables are out of scope in the method.
> If arguments bothers you, you can use a Proc object instead of a method.
>
> Next, please see here.
>
> > def guess
>       ^^^^^
> > guess = TkVariable.new()
>   ^^^^^
>
> There is conflict of names.
> So, "proc{guess}" refers the local variable.
> If you want to call "guess" method, you must use "proc{guess()}".
>
> > root = Tk.mainloop
>
> Probably, the return value is not useful.
>
> If I were you, I may write such like as the following.
> ----------------------------------------------------
> require 'tk'
>
> right_guess = rand(21)
> number_of_guess = TkVariable.new(0)
>
> Tk.root.title('Number guess')
>
> TkLabel.new(:textvariable=>number_of_guess).pack(:side=>:top,
> :pady=>10)
>
> status = TkLabel.new(:text=>"Entry your guess and press the button",
>                      :width=>37).pack(:side=>:bottom, :pady=>10)
>
> entry = TkEntry.new.pack(:side=>:top, :pady=>10)
>
> guess_cmd = proc{
>   value = entry.value
>   if value.empty? || value.to_i != right_guess
>     number_of_guess.numeric += 1
>     status.text('Sorry, no luck')
>   else
>     status.text('Correct!')
>   end
> }
>
> button = TkButton.new(:text=>'Guess',
> :command=>guess_cmd).pack(:side=>:top, :p\ady=>10)
>
> entry.bind('Return', proc{button.invoke})
>
> Tk.mainloop
> ----------------------------------------------------
> --
> Hidetoshi NAGAI (nagai / ai.kyutech.ac.jp)
>
>


--
"winners never quit, quitters never win"

------art_35784_8290629.1145020606024--