[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my =

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:9963] Ruby/Tk -- Creating a class with Labels and Buttons that talk to each other

From: jfn@... (Jeremy Nelson)
Date: 2001-01-26 23:10:04 UTC
List: ruby-talk #9963
[what I've done so far to try to solve the problem]
I am a beginner to Ruby, and I am a beginner to Tk.  I own the Ruby book
and I own perl/tk.  I have read each post available as of now in 
comp.lang.ruby that refers to graphical programming.  I have read the Tk
chapter in the Ruby book and the chapters on labels and buttons in the 
perl/tk book.

[introduction]
With that being said, I have a problem that I am absolutely stumped about.
I am attempting to create a dialog that contains two "button-boxes", side
by side, and a third button which will "select" the values in the button 
boxes.

A "button box" is composed of a TkLabel on bottom, and 25 buttons, arranged in
a 5x5 pattern above it.  Each button's face has a number on it, from 1 to
25, with the button in position (0, 0) having number 1, and with the button
in position (4, 4) having number 25.  The text in the TkLabel should be the
string on the face of the last button that was pressed.  For example, if the
user presses the "5" button then the TkLabel will display the value "5".

The purpose of this is to permit the end user to quickly input two numeric 
values, with the TkLabel being feedback to show the user what button they
last pushed.  When the user pushes that third button, the value of each of
the two button boxes will be queried and something will be done with them.

[summary]
Thus what I am looking for is a graphical widget that contains 25 buttons,
a text field, the entirity of which is intended to pass a single, integer
value onto the application.  The value of this widget changes each time 
the user presses one of the 25 buttons.  Although my specific need is for
25 buttons, I'd love to create a general purpose class that will work on
any number of rows and columns.

[problem]
I tried to create a "button box" class and instantiate two seperate objects
of this class.  However, I need some way to have the buttons talk to the
label, so that the label will be updated when one of the buttons is pushed.
The only way I have been able to get the buttons to talk to the labels is 
to use global variables, and that won't do because I need to be able to
create more than one of these grids.  I have tried to create a TkVariable
inside the "initialize" function, but I can't get it to be visible inside
the "command proc" for the TkButton.

[current implementation]

$globalvar = TkVariable.new
class Buttonbox
        def initialize (parent, rows, columns)
                @frame = TkFrame.new(parent).pack

                @label = TkLabel.new(parent) {
                                textvariable    $globalvar
                        }

                rows.times { |i|
                   columns.times { |j|
                        currval = (i * rows + j).to_s
                        TkButton.new(@frame) {
                                command proc {$globalvar.value = self.text}
                                text    currval
                                grid ( 'row' => i, 'column' => j)
                        }
                   }
                }

                @label.pack
        end
end

mw = TkRoot.new
Buttonbox.new(mw, 5, 5)
Buttonbox.new(mw, 6, 6)
Tk.mainloop


[end]
Can someone tell me if what I want to do is even possible?  Conceptually
what I'm trying to do seems straightforward, but I'm at a total loss to
figure out how I'm supposed to do this without global variables, which 
entirely defeats the benefits of making this an object.

Thanks so much!
Jeremy

In This Thread

Prev Next