[#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:4273] Re: [Q] tk ext...

From: matz@... (Yukihiro Matsumoto)
Date: 1997-09-11 10:30:59 UTC
List: ruby-list #4273
まつもと ゆきひろです

In message "[ruby-list:4272] [Q] tk ext..."
    on 97/09/11, Kikutani Makoto <kikutani@jdc.ericsson.se> writes:

|[1  <text/plain; iso-2022-jp (7bit)>]
|きくたにです。
|
|そろそろ、rubyで実用プログラムを書きたいので、添削をお願いしようと
|思います。

おおっ.

|1) 標準入力はいずれUnixソケットからの入力に置き換えますが、この調子で
|  膨大なデータを受けとっていって、TkのCanvasは問題ないですか?
|  (あとズーム機能など入れなくちゃだめだし)

こいつはTkの問題なので私は良くわからんです.どうなんでしょう? 
どなたかご存知ありません?

|2) WViewerクラス中で使っている、$v, $c, $scrは最初インスタンス変数にして
|  たのですが、大域変数にしないとだめでした。これはそういうものですか?

この場所ではselfがすりかわっていますので,インスタンス変数は
Frameのものになってしまいます.ここはイテレータブロックの中
で生成するのではなく,

  @frm = TkFrame.new {
    ...
  }

  @v = TkCanvas.new(@frm) {
    ..
  }

というスタイルをお勧めしたいです.
# やはりselfをすりかえるという発想に無理があったか.

|3) draw_scaleというメソッドでやっていることは、最初、
|  $v = TkCanvas.new(f){ ... } の直後でやってたのですが、表示が変でした。
|  これはなぜ?

こちらでは再現しなかったので,よくわかりません.

|4) その他直したほうがいい点

その方が良いかどうかはわからないのですが,ハッシュを使って初
期化する版を作ってみました.また,インスタンス変数を使うよう
にもしています.

#!/usr/bin/ruby
# test program for WaveViewer which can be called from Verilog PLI

require "tkclass"

# initial window size
$width = '500'
$height = '100'
$vwidth = 30
$pr_time_step = 100

class WViewer
  def initialize(signame)
    @high = $height.to_i * 0.2
    @low = $height.to_i * 0.7
    @pr_time = 0
    @last_x = 0
    @last_y = @low

    @frm = TkFrame.new

    TkLabel.new(@frm, 'text'=>signame).pack('side' =>'top')

    # canvas for vertical axis
    @v = TkCanvas.new(@frm,
		      'relief' => 'sunken',
		      'bg' => 'LightCyan1',
		      'height' => $height,
		      'width' =>  $vwidth.to_s).pack('side' =>'left', 'fill'=>'y')

    # canvas for plotting the points
    @c = TkCanvas.new(@frm,
		      'relief' => 'sunken',
		      'bg' => 'LightCyan1',
		      'height' => $height,
		      'width' =>  $width,
		      'closeenough' => '3').pack('side' =>'top', 'fill'=>'both', 'expand'=>'1')
    draw_scale
    @c.xscrollcommand proc{|idx|
      @scr.set *idx
    }
  
    @scr = TkScrollbar.new(@frm,
			   'orient' => 'horizontal'). pack('side'=>'bottom', 'fill'=>'x')
    @scr.command proc{|idx|
      @c.xview *idx
    }
    @frm.pack
  end

  def draw_scale
    # draw vertical scale
    TkcLine.new(@v, $vwidth/2+10, @low, $vwidth/2+10, @high, 'fill'=>'blue')
    TkcLine.new(@v, $vwidth/2, @low, $vwidth/2+10, @low, 'fill'=>'blue')
    TkcLine.new(@v, $vwidth/2, @high, $vwidth/2+10, @high, 'fill'=>'blue')
    TkcText.new(@v, 5, @high, 'text'=>'1', 'fill'=>'red')
    TkcText.new(@v, 5, @low, 'text'=>'0', 'fill'=>'red')
  end

  def plot_bit(dt, b)
    x = @last_x + dt
    if b == 1
      y = @high
    else
      y = @low
    end
    TkcLine.new(@c, @last_x, @last_y, x, @last_y)
    TkcLine.new(@c, x, @last_y, x, y)
    if x >= @pr_time
      TkcText.new(@c, x, @low+10, 'text'=>x, 'fill'=>'green')
      @pr_time += $pr_time_step
    end
    @last_x = x
    @last_y = y
  end

  def set_scrarea
    @c.configure('scrollregion', "0 0 #@last_x #$height")
  end
end

# 1st line is the signal name 
signal = gets
view = WViewer.new(signal)
# now plot points from stdin 
while gets
  dt, b = split
  view.plot_bit(dt.to_i, b.to_i)
end
# set scroll area
view.set_scrarea

Tk.mainloop

In This Thread