1 名前:デフォルトの名無しさん [2006/08/08(火) 19:08:09 ] 他プラットホームとの互換性なんかいらん! 漏れはWindowsの上だけで快適に使いたいんだ! Windows独自の技術的な話題や、 Windows版だけのrubyの問題について語るスレ。 ■ruby www.ruby-lang.org/ja/ ■ruby関連スレ ・Rubyについて Part 22 (本スレ?) pc8.2ch.net/test/read.cgi/tech/1147897915/ ・Ruby初心者スレッドPart7 pc8.2ch.net/test/read.cgi/tech/1154077799/l50
264 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:34:15 ] vruby で ListView をいじってるんですが、 マウスのクリックイベントって拾えませんか? ダブルクリックは拾えるみたいですが、右クリックも拾いたいのです。 require 'vr/vrcontrol' require 'vr/vrcomctl' require 'vr/vrhandler' class MyListview <VRListview include VRMouseFeasible def vrinit super addColumn("name",120) insertColumn(1,"ext",50) addColumn("size",80) addColumn("atime",120) insertMultiItems(0,[ [["test2","dat"],0], [["foo","bar"],1] ]) end end
265 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:35:27 ] module MyForm def construct self.move(10,10,600,400) self.caption="TreeList TEST" addControl(MyListview,"lv1","lv", 0, 0, 300, 400) end def lv1_dblclicked p 'dblclicked' end def lv1_lbuttonup(shift,x,y) p [shift,x,y] end def lv1_columnclick(subitem) p subitem end end frm=VRLocalScreen.newform frm.extend MyForm frm.create.show VRLocalScreen.messageloop こんな感じでやっても、lv1_lbuttonup に処理がこないのです。
266 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:37:47 ] vrubyはしらんけどdelphiのlistviewにはonmousedownというイベントがあって通常それで拾う。
267 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:39:08 ] 右クリックでlbuttonupが来ると?
268 名前:264-265 mailto:sage [2007/07/14(土) 18:48:10 ] レスありがとうございます。 >266 そうですよね。 普通イベントハンドラがデフォルトで定義されているのですが vruby の VRListview では定義されてないようです。 Spy++でみると、WM_RBUTTONDOWN, WM_RBUTTONUP などのメッセージは ListView に来てます。 >267 失礼・・。まずは lbuttonup で試してました。 rbuttonup と読み替えてください。 最終的にやりたいことは右クリックを拾う、です。 lv1_dblclicked が呼ばれると、なぜか lv1_lbuttonup が同時に後から呼ばれていることを発見。 ウィンドウメッセージは ListView に飛んできてるので おそらくは vruby 側で何か処理を足してやれば めでたくマウスの右クリックがとれるはずなので もうちょいがんばってみます。