新井です。

In message "[ruby-list:28612] TkScrollbar#identify bug"
  on 09 Mar 2001 07:27:35 +0900,
  Noritsugu Nakamura <nnakamur / mxq.mesh.ne.jp> wrote:
> 
> 中村 のりつぐ です。
> 
> TkScrollbar#identify が間違っているようです。

> 正:
>   def identify(x=None, y=None)
>     tk_send('identify', x, y)
>   end

identify も引数は省略不可のようですね

   def identify(x, y)
     tk_send('identify', x, y)
   end

# むっ、これも空文字列を返す。。。

> あと、TkScrollbar#activate が実装されていないようです。
> どういう機能か不明ですが…

以下で(フォーカスを置いてない最初の状態だと)左矢印が黒くなっ
てるのがわかりますでしょうか?いろいろ触れば active な状態と
いうのがわかると思います。

# 多くの定義済みメソッドが空文字列は空文字列のままにしてます
# ね。下の string_or_nil なんてことはしない方がよいか

    require "tk"

    module TkComm
      def string_or_nil(s)
	s.empty? ? nil : s
      end
    end

    class TkScrollbar
      def activate(element=None)
	string_or_nil tk_send('activate', element)
      end
    end

    TkEntry.new {
      ('a'..'z').each {|v|
	insert 'end', v * 10
      }

      xscrollbar TkScrollbar.new.pack('fill'=>'x')
      xscrollbar.activebackground 'black'
      p xscrollbar.activate('arrow1')
    }.pack

    Tk.mainloop

--
新井康司 (Koji Arai)