あ伊藤@山形大学です. 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 伊藤 彰則 山形 大学