[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Calling class's method when button is pressed

Sujeet Kumar

5/29/2005 2:23:00 PM

Hi
How to call the method of a class when button(TkButton) is pressed.
For example why the following code generate runtime error
bgerror failed to handle background error.
Original error: NoMethodError: undefined method `bpressed' for
Button:Class
Error in bgerror: invoked "break" outside of a loop
when TkButton is pressed.The code is
require 'tk'
class Button
def bpressed
puts "bpressed"
end

root = TkRoot.new(){ title "Buttton"}
button =TkButton.new(root){
text "Button1"
command {Button::bpressed}

}.pack
end
Tk.mainloop

Anyone can explain the error or any other method to call class's function
when TkButton is pressed
Thanks
sujeet



2 Answers

acharlieblue

5/29/2005 5:02:00 PM

0


Sujeet Kumar wrote:
> Original error: NoMethodError: undefined method `bpressed' for
> Button:Class
> Error in bgerror: invoked "break" outside of a loop
> when TkButton is pressed.The code is
> require 'tk'
> class Button
> def bpressed
> puts "bpressed"
> end
>
> root = TkRoot.new(){ title "Buttton"}
> button =TkButton.new(root){
> text "Button1"
> command {Button::bpressed}
>
> }.pack
> end
> Tk.mainloop

You are defining bpressed as an instance method, not a class method, of
Button. What you want is this:

class Button
def self.bpressed
puts "bpressed"
end
end

Sujeet Kumar

5/29/2005 6:27:00 PM

0

Hi
Thanks.It works now
sujeet

> Sujeet Kumar wrote:
>> Original error: NoMethodError: undefined method `bpressed' for
>> Button:Class
>> Error in bgerror: invoked "break" outside of a loop
>> when TkButton is pressed.The code is
>> require 'tk'
>> class Button
>> def bpressed
>> puts "bpressed"
>> end
>>
>> root = TkRoot.new(){ title "Buttton"}
>> button =TkButton.new(root){
>> text "Button1"
>> command {Button::bpressed}
>>
>> }.pack
>> end
>> Tk.mainloop
>
> You are defining bpressed as an instance method, not a class method, of
> Button. What you want is this:
>
> class Button
> def self.bpressed
> puts "bpressed"
> end
> end
>
>