あ伊藤@山形大学です.

In article <199711011214.VAA09517 / intellect.pe.u-tokyo.ac.jp>,
	 <nkon / osk2.3web.ne.jp> writes:

> 近藤と申します。

こんにちは.ところで,近藤さんのメールに Reply-To: と Error-To:
というヘッダがついているのですが,

・Reply-To: が付いていると,返信が近藤さんの個人あてになってしまう
  のでは?
・Error-To: は Errors-To: の間違いでは?

ちょっとチェックしていただけますか?

> もう一点の
> 
> > 1. Manager#initialize で Tk.after 1000, Proc.new{@root.withdraw}
> >    で root window を消しているのですが、root window がうまく消される時
> >    と、ずっと表示されたままの時があります。表示されたままの時が多いで
> >    す。
> 
> は疑問のままです。原因、対策を教えて下さい。

Tk.after 1000, Proc.new{@root.withdraw}

は,実行後1秒でrootを消すのですが,近藤さんのコードでは

# アプリケーションマネージャの作成

$manager = Manager.new  # この後1秒で root を消す
$manager.newcreate      # Cet アプリケーションの作成

Tk.mainloop

となっていて,上記の Tk.after 〜 実行後から Tk.mainloop までの間に
Cet のインスタンスを生成していて,それが1秒以内に終わる保証があり
ません.この場合,例えば

class Manager
  def initialize
	@windows = []

	# 見えない root window を作成
	@root = TkRoot.new
  end
  def withdraw_root
	Tk.after 1000, Proc.new{@root.withdraw}
  end
end

のように root の消去を別メソッドにしておいて,

$manager = Manager.new 
$manager.newcreate     # Cet アプリケーションの作成
$manager.withdraw_root # この後1秒で root を消す
Tk.mainloop

のように Tk.mainloop の直前に Tk.after をしかければ,
root は確実に消えます.

# ニュースでも書きましたが,一瞬表示されてしまう root を
# クレジットタイトルにしてごまかす,というのはいかがでしょう.
--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学