[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <[email protected]>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <[email protected]>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <[email protected]>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42360] Re: TkCanvasの座標

From: Hidetoshi NAGAI <nagai@...>
Date: 2006-06-05 02:05:29 UTC
List: ruby-list #42360
永井@知能.九工大です.

From: Masato Ishimoto <[email protected]>
Subject: [ruby-list:42359] Re: TkCanvasの座標
Date: Mon, 5 Jun 2006 08:04:42 +0900
Message-ID: <[email protected]>
> はい。カーソルがtcrossですので、黒い線の上にカーソルを合わせると
> 白く反転します。それを基準にすると、y座標は必ず1ずれています。
> x_line2 = TkcLine.new(canvas, 0, 50, 200, 50) とした場合、 
> y座標は 49.0となってしまいます。
     (snip)
> この状態でx_line2とy_line2の交点にカーソルを合わせる 
> と、
> x= 53 : 50.0
> y= 52 : 49.0
> と表示されます。

ふむ.だとすると,この点については tcross カーソルの問題と
考えた方がいいのかもしれません.
つまり,カーソルで実際にポインティングしているとされている位置が
カーソルビットマップの横線の 1 pixel 上になっているのかもという話です.
ものは試しですので,カーソルを tcross ではなく crosshair にしてみると
どうなるでしょうか?

> 因みに、前回のお話の中にあったcanvas.winfo_widthと
> canvas.winfo_heightもpしてみましたが、両方とも1と表示
> されました。この辺りも??です。

あ,winfo_width 等は,画面上に表示する前には正しい値を示しません.
winfo_width 等を出力する前に Tk.update_idletasks を実行して
表示の更新処理を実行すれば期待した値が得られるはずです.

この場合に限らず,表示が更新されるような処理を呼び出した後に
更新後の表示の情報を正しく得たい場合には
先に Tk.update_idletasks を呼び出すべきです.

種々のイベントへの即応性を優先するため,表示の更新は遅延され,
他に処理待ちのイベントが存在しないとき (アイドルタスク時) に
呼ばれる仕組みになっています.
ですので,明示的に Tk.update_idletasks を呼び出さなければ
その時点で表示更新が完了しているかどうかは保証されません.

もちろん,Tk.update でアイドルタスクを含むすべてのイベントを
処理してもいいわけですが,今のケースで必要なのは表示更新だけなので
Tk.update_idletasks の方が適切でしょう.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           [email protected]

In This Thread