[#4060] ruby-tk on Windows — Eiji-usagi-MATSUmoto <ematsu@...>

うさぎです。

70 messages 1997/09/03
[#4061] Re: ruby-tk on Windows — matz@... (Yukihiro Matsumoto) 1997/09/03

まつもと ゆきひろです

[#4064] Re: ruby-tk on Windows — Masaki Suketa <suke@...> 1997/09/03

>まつもと ゆきひろです

[#4071] Re: ruby-tk on Windows — KIMURA Koichi <kkimura@...> 1997/09/03

[#4075] Re: ruby-tk on Windows — Masaki Suketa <suke@...> 1997/09/03

助田です

[#4089] Re: ruby-tk on Windows — Masaki Suketa <suke@...> 1997/09/04

助田です

[#4165] Re: ruby-tk on Windows — Masaki Suketa <suke@...> 1997/09/08

助田です

[#4168] Re: ruby-tk on Windows — KIMURA Koichi <kkimura@...> 1997/09/08

[#4169] Re: ruby-tk on Windows — Shin-ichiro HARA <sinara@...> 1997/09/08

原です。

[#4170] Re: ruby-tk on Windows — matz@... (Yukihiro Matsumoto) 1997/09/08

まつもと ゆきひろです

[#4172] Re: ruby-tk on Windows — WATANABE Hirofumi <watanabe@...> 1997/09/08

わたなべです.

[#4174] Re: ruby-tk on Windows — matz@... (Yukihiro Matsumoto) 1997/09/08

まつもと ゆきひろです

[#4187] Re: ruby-tk on Windows — KIMURA Koichi <kkimura@...> 1997/09/08

[#4188] Re: ruby-tk on Windows — matz@... (Yukihiro Matsumoto) 1997/09/08

まつもと ゆきひろです

[#4190] Re: ruby-tk on Windows — sakamoto@... (Sadayuki Sakamoto) 1997/09/08

酒本です。

[#4083] ruby 1.0-970903 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/09/03

[#4278] Is there any english documentation ? [FreeBSD ports] — Eiji-usagi-MATSUmoto <ematsu@...>

うさぎです。

11 messages 1997/09/11

[#4313] mail address class — akira yamada / やまだあきら <akira@...>

36 messages 1997/09/15
[#4406] Re: mail address class — akira yamada <akira@...> 1997/09/18

[#4408] Re: mail address class — keiju@... (石塚圭樹 ) 1997/09/18

けいじゅ@日本ラショナルソフトウェアです.

[#4506] Re: mail address class — akira yamada / やまだあきら <akira@...> 1997/09/22

[#4637] Re: mail address class — keiju@... (石塚圭樹 ) 1997/09/25

けいじゅ@日本ラショナルソフトウェアです.

[#5042] Re: mail address class — akira yamada / やまだあきら <akira@...> 1997/10/17

[#5043] Re: mail address class — shugo@... (Shugo Maeda) 1997/10/18

前田です。

[#5044] Re: mail address class — akira yamada / やまだあきら <akira@...> 1997/10/18

[#5047] Re: mail address class — shugo@... (Shugo Maeda) 1997/10/18

前田です。

[#5053] Re: mail address class — akira yamada / やまだあきら <akira@...> 1997/10/19

[#5067] Re: mail address class — shugo@... (Shugo Maeda) 1997/10/20

前田です。

[#4324] ruby seminar — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

37 messages 1997/09/16
[#4337] Re: ruby seminar — shugo@... (MAEDA Shugo) 1997/09/16

前田です。

[#4339] Re: ruby seminar — matz@... (Yukihiro Matsumoto) 1997/09/16

まつもと ゆきひろです

[#4387] Re: ruby seminar — shugo@... (MAEDA Shugo) 1997/09/18

前田です。

[#4391] Re: ruby seminar — Eiji-usagi-MATSUmoto <ematsu@...> 1997/09/18

うさぎ@勤務地は西田幾太郎生誕の地です。

[#4407] Re: ruby seminar — shugo@... (MAEDA Shugo) 1997/09/18

前田です。

[#4366] socket — Kikutani Makoto <kikutani@...>

きくたにです。

21 messages 1997/09/17
[#4389] Re: socket — matz@... (Yukihiro Matsumoto) 1997/09/18

まつもと ゆきひろです

[#4449] Bug?? (ruby-1.0-970911) — Yuji Shigehiro <sigehiro@...>

ruby-1.0-970701 から, ruby-1.0-970911 にバージョンアップしたところ,

16 messages 1997/09/19

[#4510] python doc — Kikutani Makoto <kikutani@...>

ここで聞くべきことじゃないのですが、きっと知ってる人がいるだろう

34 messages 1997/09/22
[#4555] Re: python doc — Kikutani Makoto <kikutani@...> 1997/09/24

きくたにです。

[#4562] Re: python doc — gotoken@... (GOTO Kentaro) 1997/09/24

きくたにさん>

[#4563] ruby animal (Re: python doc) — matz@... (Yukihiro Matsumoto) 1997/09/24

まつもと ゆきひろです

[#4567] Re: ruby animal (Re: python doc) — gotoken@... (GOTO Kentaro) 1997/09/24

まつもと ゆきひろさん>

[#4577] Re: ruby animal (Re: python doc) — Masaki Suketa <suke@...> 1997/09/24

助田です

[#4556] install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...>

30 messages 1997/09/24
[#4559] Re: install problem of mudule for postgreSQL — Eiji-usagi-MATSUmoto <ematsu@...> 1997/09/24

うさぎです。

[#4574] Re: install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...> 1997/09/24

[#4580] Re: install problem of mudule for postgreSQL — Eiji-usagi-MATSUmoto <ematsu@...> 1997/09/24

うさぎです。

[#4595] Re: install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...> 1997/09/24

[#4603] Re: install problem of mudule for postgreSQL — Eiji-usagi-MATSUmoto <ematsu@...> 1997/09/24

うさぎです。

[#4612] Re: install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...> 1997/09/24

[#4614] Re: install problem of mudule for postgreSQL — matz@... (Yukihiro Matsumoto) 1997/09/24

まつもと ゆきひろです

[#4616] Re: install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...> 1997/09/24

[#4622] Re: install problem of mudule for postgreSQL — matz@... (Yukihiro Matsumoto) 1997/09/24

まつもと ゆきひろです

[#4632] Re: install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...> 1997/09/25

[#4738] ruby 1.0-970930 install failed — Yoshiyuki Kusano <kusano@...>

草野@構造計画です.

15 messages 1997/09/30

[#4741] rbc.rb — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

33 messages 1997/09/30
[#4759] Re: rbc.rb — shugo@... (MAEDA Shugo) 1997/10/02

前田です。

[#4773] Re: rbc.rb — keiju@... (石塚圭樹 ) 1997/10/03

けいじゅ@日本ラショナルソフトウェアです.

[#4778] Re: rbc.rb — shugo@... (MAEDA Shugo) 1997/10/03

前田です。

[#4793] Re: rbc.rb — keiju@... (石塚圭樹 ) 1997/10/04

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:4129] Re: How to get value (ruby/tk)

From: aito@...5sun.yz.yamagata-u.ac.jp
Date: 1997-09-04 23:51:56 UTC
List: ruby-list #4129
あ伊藤です.

In article <19970904212328X.nnakamur@mxq.meshnet.or.jp>,
	Noritsugu Nakamura  <ruby-list@netlab.co.jp> writes:

> 質問です。ruby/Tk で Tk からの値をもらうには
> どうしたら良いのでしょうか?
> 
> 例えば、以下のようなプログラムです。
> 
> #!/usr/local/bin/wish4.2
> 
> button .quit -text "Quit" -command {
> 	set value [tk_messageBox -type yesno -default no \
> 			-icon question -message "Really Quit?"]
> 	if {$value == "yes"} {exit}
> }
> pack .quit

tcl/tk の変数は TkVariable で確保することができるのですが,
tcl/tk の手続きが返す値をその変数に代入するのが難しいのです.
tk_call を使うと,[ ] がクオートされてしまうので.

私は,次のような手を使っています.まず tcl の特殊記号を
そのまま送出する関数 tk_call_without_quote を定義して,
その上で

 	set value [tk_messageBox -type yesno -default no \
 			-icon question -message "Really Quit?"]

に相当するコマンドを直接送出します.変数を TkVariable で
確保すれば,あとは ruby の中から自由に変数を参照できます.

(以下のソースは,contrib の下にある emie の一部です.
適当にお使いください.)

#!/bin/sh
# This is a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 09/04/1997 23:55 UTC by aito@ei5nazha
# Source directory /home/disk/usrs/aito/amuse/emie
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   1432 -rw-r--r-- dialog.rb
#   1257 -rw-r--r-- lowlevel.rb
#
# ============= dialog.rb ==============
if test -f 'dialog.rb' -a X"$1" != X"-c"; then
	echo 'x - skipping dialog.rb (File already exists)'
else
echo 'x - extracting dialog.rb (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'dialog.rb' &&
require "tk"
require "lowlevel"
X
class TkDialog < TkWindow
X  include TkLowlevel
X  # initialize tk_dialog
X  def initialize
X    super
X    @var = TkVariable.new
X    tk_call_without_quote('global',@var,';',
X			  'set',@var,'[','tk_dialog', 
X			  @path, title, "\"#{message}\"", bitmap, 
X			  default_button, buttons, ']')
X  end
X  def value
X    return @var.value.to_i
X  end
X  ######################################################
X  #                                                    #
X  # these methods must be overridden for each dialog   #
X  #                                                    #
X  ######################################################
X  def title
X    return "DIALOG"
X  end
X  def message
X    return "MESSAGE"
X  end
X  def bitmap
X    return "info"
X  end
X  def default_button
X    return 0
X  end
X  def buttons
X    return "BUTTON1 BUTTON2"
X  end
end
X
#
# dialog for warning
#
class Warning < TkDialog
X  def initialize(mes)
X    @mes = mes
X    super()
X  end
X  def message
X    return @mes
X  end
X  def title
X    return "WARNING";
X  end
X  def bitmap
X    return "warning";
X  end
X  def default_button
X    return 0;
X  end
X  def buttons
X    return "OK";
X  end
end
X
class CantOpen < Warning
X  def initialize(mes,parent=nil,keys=nil)
X    super(mes+"が開けないの")
X  end
end
X
class Decision < Warning
X  def bitmap
X    return "question"
X  end
X  def default_button
X    return 1
X  end
X  def buttons
X    return "はい いいえ"
X  end
end
SHAR_EOF
chmod 0644 dialog.rb ||
echo 'restore of dialog.rb failed'
Wc_c="`wc -c < 'dialog.rb'`"
test 1432 -eq "$Wc_c" ||
	echo 'dialog.rb: original size 1432, current size' "$Wc_c"
fi
# ============= lowlevel.rb ==============
if test -f 'lowlevel.rb' -a X"$1" != X"-c"; then
	echo 'x - skipping lowlevel.rb (File already exists)'
else
echo 'x - extracting lowlevel.rb (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'lowlevel.rb' &&
require "tk"
X
module TkLowlevel
X  include Tk
X  #
X  # tk_call_without_quote : stolen from module Tk
X  #           remove quote from strings sent to wish
X  #
X  def tk_call_without_quote(str, *args)
X    args = args.collect{|s|
X      next if s == None
X      if s.kind_of?(Hash)
X	s = hash_kv(s).join(" ")
X      else
X	if not s
X	  s = "0"
X	elsif s == TRUE
X	  s = "1"
X	elsif s.kind_of?(TkObject)
X	  s = s.path
X	elsif s.kind_of?(TkVariable)
X	  s = s.id
X	else
X	  s = s.to_s
X	end
X	s
X      end
X    }
X    str += " "
X    str += args.join(" ")
X    print str, "\n" if $DEBUG
X    tk_write 'rb_ans {%s}', str
X    while PORT.gets
X      print $_ if $DEBUG
X      $_.chop!
X      if /^=(.*)@@$/
X	val = $1
X	break
X      elsif /^=/
X	val = $' + "\n"
X	while TRUE
X	  PORT.readline
X	  if ~/@@$/
X	    val += $'
X	    return val
X	  else
X	    val += $_
X	  end
X	end
X      elsif /^!/
X	$@ = error_at
X	msg = $'
X	if msg =~ /unknown option "-(.*)"/
X	  $! = NameError.new(format("undefined method `%s' for %s(%s)",
X				    $1, self, self.type)) #`'
X	else
X	  $! = RuntimeError.new(format("%s - %s", self.type, msg))
X	end
X	fail
X      end
X      $tk_event_queue.push $_
X    end
X
X    while ev = $tk_event_queue.shift
X      Tk.dispatch ev
X    end
X    fail 'wish closed' if PORT.closed?
X    val
X  end
end
SHAR_EOF
chmod 0644 lowlevel.rb ||
echo 'restore of lowlevel.rb failed'
Wc_c="`wc -c < 'lowlevel.rb'`"
test 1257 -eq "$Wc_c" ||
	echo 'lowlevel.rb: original size 1257, current size' "$Wc_c"
fi
exit 0


--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学

In This Thread