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
47 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 03:39:11 ] 今知ったんだからもう情報かき集める必要ないし、 バッチ書けば手作業の必要も無い
48 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 06:42:51 ] Ruby関連プロジェクトってって腰が重いよな・・・ 個人的に不便に思ってる点が改善されたことが一度もない。
49 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:14:50 ] 本スレでもそうだけど要望出るといちいち必要ないとか 火消しに回ってる部隊はなぜそんなことやってるのか意味がわからん
50 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:27:58 ] >>49 必要のあるなしを吟味せずに、無節操に取り入れていったらどうなるか考えてみろ
51 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:29:26 ] キターw
52 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 11:40:05 ] >>48 kwsk。出来れば具体的なプロジェクト名を。 >>49 2chに限定した話? 2chのスレや日記などであげられていた問題がきっかけで 直接修正されたということなら数回見たことがあるけど、 そんなにひどいことってあったかな。 出来ればどのスレのどの辺りって教えてくれませんか。
53 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 14:39:32 ] vrubyはdelphiみたいなAnchorsはないのかな あれがあるだけでレイアウトが簡単になるのだが
54 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 14:48:16 ] ∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ. 要望禁止│ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ ゛゛'゛'゛
55 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 15:37:36 ] >>53 なんだAnchorsって。
56 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 15:39:50 ] >>53 Apollo使えば?
57 名前:デフォルトの名無しさん [2006/08/15(火) 16:17:52 ] vrubyで、次のようにしてウィンドウの位置と大きさを保存・復帰させてみたのですが、 起動と終了を繰り返すたびにウィンドウが小さくなってしまいます。 どうすれば正しくできるのでしょうか? require 'vr/vruby' require 'vr/vrhandler' require 'pstore' class Form1 < VRForm include VRClosingSensitive #include VRMessageHandler def construct @db = PStore.new("window.db") @db.transaction do pos = @db["pos"] || @db.abort p pos self.move(*pos) end end def self_close @db.transaction do @db["pos"] = [x, y, w, h] end end end VRLocalScreen.start(Form1)
58 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 18:19:07 ] >>57 バグか仕様か知らんけど、x,y,w,hはクライアント領域のものなので、 それを使ってmoveしちゃうとタイトルバーとかウィンドウ枠とかの分 どんどん小さくなる。 self_closeで、 @db["pos"] = [x, y, w, h] でなく @db["pos"] = self.windowrect とすればうまくいくんじゃないか? 試してないが。
59 名前:57 mailto:sage [2006/08/15(火) 19:13:51 ] >>58 その通りでした。おかげでうまくいきました。
60 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 22:23:50 ] >>42 > Windows限定でいいので > Pathnameかなんかに'/' <-> '\\'の相互変換メソッドが欲しい '\\'->'/'はFile.expand_pathでできるよね '/'->'\\'は単純にgsubでも大丈夫だと思うけど それじゃだめ?
61 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 22:39:38 ] デフォルトのパス区切りが/なんてWindows環境じゃありえないウンコ仕様は未来永劫直らないんだろうな。
62 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 22:44:57 ] 別にどっちもウンコ仕様だとは思わないけど。
63 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 22:45:58 ] ああ、RubyのWin対応がウンコって意味か。 それなら同意
64 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 01:37:02 ] 殺伐としてるなぁ
65 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 05:07:48 ] 殺伐としてる割には進行遅いがな
66 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 16:46:48 ] >>33 のすぐ落ちる画面を書いてみた。 require 'vr/vruby' require 'vr/vrcomctl' require 'vr/vrcontrol' class Test_Form < VRForm def self_created self.caption = 'form1' self.move(265,185,600,400) addControl(VRListview,'listView',"listView",56,16,488,304,1342177281) @listView.addColumn("column1",100) @listView.addColumn("column2",120) Thread.start do loop do @listView.insertItem(0,[Time.now.strftime("%H:%M:%S") , "auauauauauau"]) # sleep(0.1) end end end end VRLocalScreen.start Test_Form スレッドにsleepを入れていないので猛スピードでカラムを挿入するが、 この状態でカラムの幅を変えようとすると画面が固まったり、プログラムが落ちて窓が消えてしまう。 sleepのコメントをはずすと、平均して10回に1回ぐらいの確率(体感)で、固まったり落ちたりする感じ。 あと、カラム1の要素をクリックして選択しようとしても同じ事が起こる。
67 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 16:52:24 ] なぜ作者に連絡したり、MLに投げたりという発想がないのか
68 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 16:59:27 ] 定期巡回乙であります
69 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 23:01:17 ] >>66 手元でやってみたが固まりも落ちもしなかった ひょっとしてActiveScriptRubyのせいじゃない? るびま15号のartonさんインタビューで、XPでスレッド周りが動かなくなったとか言ってる
70 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 23:11:19 ] >>69 ActiveScriptRubyだけど、固まりも落ちもしなかった。
71 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 23:12:44 ] とりあえずお前らrubyとライブラリのバージョンくらい書け。
72 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 23:20:07 ] >>71 >>33 に書かれてるじゃん
73 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 23:23:22 ] つか、動く報告があったんだから、>>33 は他のWindowsバイナリでも落ちるのかどうか 検証してから報告して欲しいな。
74 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 00:28:39 ] >>66 ASR1.8.4.1で試したけど問題なし。 Webに行ったら1.8.4.5が出てたのでインストールして試したが問題なし。
75 名前:33 mailto:sage [2006/08/17(木) 01:40:51 ] 環境差の可能性があるって事であわててテストしました。 まず、cygwinをインストールして、 ruby-1.8.4-i386-cygwin.tar.gz vrswin-040314-i386-cygwin-1.8.tar.gz vruby-040717-i386-cygwin-1.8.tar.gz で動作させたら、これは33に書いたとおり、一発で落ちます。 で、サーバー用に動作させていたWindows2000 SP4 で、 ASR 1.8.4.4 で動作させたら、これは、落ちることなく正常動作します。 WindowsXP SP2だと落ちるのか?それとも自分のマシン独自の問題か? >>70 や、>>74 はXP SP2ですか?
76 名前:74 mailto:sage [2006/08/17(木) 02:29:09 ] XP Home SP2
77 名前:74 mailto:sage [2006/08/17(木) 02:42:38 ] >>75 どこでダウンロードできるのか書いといてくれよ。探したじゃん。 (ttp://ftp.ruby-lang.org/pub/ruby/binaries/cygwin/1.8/ext/) CYGWIN_NT-5.1 * 1.5.20(0.156/4/2) 2006-07-01 02:22 i686 Cygwin ruby 1.8.4 (2005-12-24) [i386-cygwin] で問題なし。
78 名前:74 mailto:sage [2006/08/17(木) 02:59:06 ] もっかい>>33 を読んで、「10分放置」をしてみたが、問題なし。 ライブラリ作者に、詳細な環境と状況を添えて、メールしたら?
79 名前:69 mailto:sage [2006/08/17(木) 04:21:31 ] swinとvrubyの最新リリースはvrswin060205とvruby060223だからね... (ASRのパッケージはもちろん最新) 2年前の古いリリース使っておかしいよって言っても作者も困るでしょ ちなみにおれの環境は Windows2000SP4、garbagecollect.jpから落とした1.8.4のバイナリ 本家から落としたvrswin060205とvruby060223のセット ぜんぜん問題なし
80 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 05:47:32 ] windows2000sp4, mswin32版rubyで固まった。swinのバージョンはよくわからん
81 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 16:08:30 ] swinのバージョンの検査は require 'swin' p SWin::VERSION かな。 vrubyのバージョン検査方法は?
82 名前:33 mailto:sage [2006/08/18(金) 01:07:40 ] >>33 および、>>66 のソースの件ですが、 require の3行の下に、 SWin::Application.thread_critical=true を書き足した所、私の必ず落ちる環境でも、正常動作するようになりました。 よかった〜これでGUIを気兼ねなく使えるかも。 でもなんで? www.osk.3web.ne.jp/~nyasu/vruby/sqa.html の一番最後に、 >mswin版はデフォルトでtrue。 と書いてあるので、この修正は必要ないと思っていたのに。 ちなみに、 p SWin::Application.thread_critical でデフォルト値を表示してみるとfalseでした。 環境:ASR1.8.4.4
83 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 01:13:59 ] 追伸 >>75 の、vrubyとswinのバージョンが古いcygwin版でも、 SWin::Application.thread_critical=true の行を書き足すことで正常動作しました。 皆さんがテストしてくださったおかげで、問題点が絞り込め、 解決に到達出来たようです。本当にありがとうございました。 vrubyの中の人。不安定とか、あらぬ疑いをかけてごめんなさいでした。
84 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 01:35:45 ] なぜかはわからんが問題解決したってことでデフォルトFALSEに変更されてるっぽい vruby.cvs.sourceforge.net/vruby/swin/swin.c?r1=1.12&r2=1.13 QAにうそ書いてるってことだし、作者に報告しといたほうがいい気がする
85 名前:vruby作者 mailto:sage [2006/08/20(日) 14:54:02 ] いまここを発見しました。 mswin版rubyとGUIのスレッド相性は、Windowsの構造化例外が どうとか(詳細忘れました)が原因で、その後ruby本体側の改修で直ったように 見えたので、mswin版もthread_critical=falseをデフォルトにしました。 cygwin版でもおかしなことが起こるということは、他にも何か問題あったんでしょうかね。 (とりあえずうちでは問題出てません。) sqa.htmlは修正しておきます。
86 名前:74 mailto:sage [2006/08/20(日) 15:40:35 ] 作者キターーーーーーー&乙であります。
87 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 11:03:40 ] dl2でドトネトらいくなライブラリを作ることを月狼に命じる
88 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 13:35:47 ] 落ちないけど固まった。 でもタスクマネージャを見るとCPUは回ってるから何かは動いてるんだなと思って-rdebugしたらsegvった。 これどのスレッドが動いてるとか追いかける方法はあるの? sleepすりゃ問題ない(今のところ)し、thread_criticalでも問題ないみたい。 だいたいスレッド経由でノーウェイトで何の手当もせずにぶん回すような用途って何だろうとは思うが。 バージョンは ・Epson NA701(CoreDuo) ・WindowsXP SP2 ・CYGWIN_NT-5.1 hoge 1.5.21(0.156/4/2) 2006-08-09 13:38 i686 Cygwin ・ruby 1.8.5 (2006-08-09) [i386-cygwin] <= preview3 ・SWin::VERSION => "060205" ・VRuby => "060223"
89 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 13:42:14 ] >>88 そういうのは、1.8.4で試すものです
90 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 16:57:26 ] visualurubyの画面で、ボタンのcaptionに ボタン(&B) と書いても Alt+B でボタンが押せないんだけど、そういうものなのでしょうか? なにか、簡単な設定かコード記述で使えるようになったりしますか?
91 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 22:32:06 ] >>90 vruby.sourceforge.net/cgi-bin/wiki.cgi?ToriAezu#i3 VBとかは(&B)とか書いただけでお手軽にショートカットキーが設定できたりするのかね?
92 名前:デフォルトの名無しさん [2006/08/21(月) 22:45:11 ] ageてみる >>88 core吐かせられるならgdbで追いかけられない? 1.8.5 preview4 が出たみたいだし 入れなおすついでにprintf突っ込んで追っかけてみるとか...
93 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:32:48 ] つーか、>>88 は、自分の環境で1.8.4で動くのか落ちるのかはっきりさせろ
94 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 07:50:29 ] >>91 VB.NETならLabelのTextプロパティに"ほげ(&B)"って書いとけば ショートカットキーが効くようになる。 # 多分VB6とかでも同じはず
95 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 09:25:59 ] >>93 めんどくさいのでマシン貸すから自分でやれば。
96 名前:デフォルトの名無しさん [2006/08/22(火) 13:30:06 ] vrubyのリストボックスで、項目をダブルクリックした時に何か処理したいんだけど どう書けばええの?
97 名前:90 mailto:sage [2006/08/22(火) 16:14:28 ] >>91 ありがとうございます。 > vruby.sourceforge.net/cgi-bin/wiki.cgi?ToriAezu#i3 確認しました。現状はこんな感じです。 ・フォームデザイナ使用。form自体にVReyFeasibleをつけてキーイベントを拾おう。 ・ありゃ、self_charイベントでは、ctrl+文字は拾えるが、alt+文字は拾えないみたい(進展がなければ、ctrl+文字で妥協しよう) ・ふむふむ、www.osk.3web.ne.jp/~nyasu/diary/200411.html によると、keydownイベントというのが拾えるんだね。 ・addHandler WMsg::WM_KEYDOWN,"keydown",MSGTYPE::ARGINTINT,nil を設定してself_keydownイベントを拾っても、やはりalt+文字は拾えないみたい ・でも出来ないはずはないんだよね。menuでは、alt+FでFileメニューをpopupしたりしているんだから。 ・うーん、menu関係のソースを読んで情報を探るしかないのか? といったところです。なにか間違った方向に進んでいそうでしたらアドバイスお願いします。 > VBとかは(&B)とか書いただけでお手軽にショートカットキーが設定できたりするのかね? .NETの他に、ExcelやAccessのフォームなどでも、部品のcaptionに(&B)と書いておけば、 コードを書くことなくALT+Bでボタンが押せるようになります。 VB6はいじったことはないですが、VBAと同等品と聞いていますので同じだと思います。 他に、 項目名(&K) [________] となっているとき、ALT+Kを押すと、入力フィールドにカーソルが移動します。 Windowsでは、画面操作のすべてをキーボード操作できる画面を、フォームエディタで(&B)などと書くだけで作れるという便利さがあります。
98 名前:90 mailto:sage [2006/08/22(火) 16:32:47 ] >>97 の補足です。 >他に、 >項目名(&K) [________] >となっているとき、ALT+Kを押すと、入力フィールドにカーソルが移動します。 なぜ、labelに(&K)と書いてあるのに、フォーカスが入力フィールドのほうに行くのかというと、 VBAなどのフォームデザイナでは、入力フィールドに限らず、listやcomboboxなどの画面部品をフォームに 挿入したとき、その画面部品の見出しlabelがセットになって、グループ化されて一緒に挿入されます。 その、セットのlabelに(&K)と書くことで、画面部品にフォーカスが行くようになります。 内部的には、画面部品と、その部品用のlabelというのがリンクされた情報を保持しているのかもしれません。 ちなみに、1画面内に複数、(&K)を指定すると、そのときの動作は保証されないそうです。
99 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 02:51:24 ] >>97 vrinitにadd_parentcall("syschar")を追加しとけば親で拾えるよ (AltはWM_CHARじゃなくてWM_SYSCHARで飛んでくるらしい) あと、syscharに限んないけどフォーカスないと拾えないから注意 イベント拾い専用のコントロールに常時フォーカスさせて そいつから一括してキーイベント拾うようにするとかしてくれ
100 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 07:32:46 ] 最近Ruby使い始めたんだがすげーいいなこれ。 GUIが一瞬で出来し、適当に書いても動くしw
101 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 08:45:00 ] >>96 blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/55704 ↑みたいにして????_dblclickedで処理 vr/compat/vrcontrol.rbのVRListboxのところに addCommandHandler(WMsg::LBN_DBLCLK, 'dblclicked',MSGTYPE::ARGNONE,nil) を直接入れちゃってもいい ってゆうか最初から入れとけよ作者
102 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 21:04:44 ] >>101 >>96 ではないけど、 FormDesignerで画面を作ると、リストボックスは、別モジュールで addControl(VRListbox,'listBox1',"listBox1",72,40,296,132,1350565889) を使って定義され、別ファイルからこのモジュールをインクルードして 使うようになってるんだけど、 この状態で、 blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/55704 と同等のサブクラス定義ってどうやればいいでしょうか? (FormDegignerで生成したファイルには手をつけずに、自作のファイルの中だけで定義したい。)
103 名前:デフォルトの名無しさん [2006/08/24(木) 01:46:48 ] >>88 >>66 のスクリプトだよねえ >>101 確かによく使いそうですねえ。つうか、selchangedだけか。デフォルトは。 >>102 VRListbox自体を差し替えるか、VRListboxのvrinitだけを差し替えれば? (前者は定数代入、後者はaliasで) >>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか) Windowsの機能で。以下サンプルのmdlgtest2.rbから抜粋&改変 なんとなくインデントが狂いそうなんでインデントを全角スペースにしてみた。modalでごめん。 require 'vr/vrdialog' module MyDialogContents def construct move 0,0,150,150 centering addControl VRButton,"btn1","button1(&a)",10,10,100,30,WStyle::WS_TABSTOP addControl VRButton,"btn2","button2(&b)",10,40,100,30,WStyle::WS_TABSTOP addControl VRButton,"btn3","button3(&c)",10,70,100,30,WStyle::WS_TABSTOP end def btn1_clicked close( ["This","is","sample","return","value"] ) end def btn2_clicked close(false) end def btn3_clicked close(3) end end p VRLocalScreen.modalform(nil,nil,MyDialogContents) #parent,style,dialog
104 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 01:52:06 ] しまった、sage損なった...
105 名前:102 mailto:sage [2006/08/24(木) 02:24:11 ] >>103 > >>102 VRListbox自体を差し替えるか、VRListboxのvrinitだけを差し替えれば? > (前者は定数代入、後者はaliasで) すんまそん。 頂いたご返答はよく分からなかった(試したが成功しなかった)のですが、 その後自分の勘違いに気づき、簡単にできることが分かりました。 self_createdで、リストボックスを表す変数に直接定義してやれば良いみたいです。 class TheForm < VRForm include Frm_form1 def self_created # @listBox1.addCommandHandler(WMsg::BN_CLICKED, "clicked", MSGTYPE::ARGNONE,nil) @listBox1.addCommandHandler(WMsg::BN_DBLCLICKED, "dblclicked",MSGTYPE::ARGNONE,nil) end def listBox1_dblclicked print "ダブルクリックしました" + $/ end # def listBox1_clicked # print "クリックしました" + $/ # end end ちなみにclickedは駄目みたいですね。selchangedとかぶるからかな?
106 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 02:34:29 ] すごいなvruby おらワクワクしてきたぞ
107 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 02:35:32 ] BN_????はボタンのやつで、LBN_????がリストボックスのやつ
108 名前:102 mailto:sage [2006/08/24(木) 02:42:56 ] >>107 >BN_????はボタンのやつで、LBN_????がリストボックスのやつ ほんとだ。また何か勘違いしているのか?<自分
109 名前:102 mailto:sage [2006/08/24(木) 02:52:24 ] >>105 ですが、やっぱり変でした。 >>105 でリストボックスをダブルクリックすると、 listBox1_dblclicked は通ることは通るんだけど、 ダブルクリックした直後には通らず、一回画面を別画面の裏側にするとか、 画面を終了させないとlistBox1_dblclickedが動作しないです。 変な物を貼ってお騒がせしてすみませんです。
110 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 03:04:19 ] ん?うまくいってるでしょ。LBN_KILLFOCUSの値になってるんじゃないかな require '_frm_hogehoge' module WMsg LBN_SETFOCUS = 4 LBN_KILLFOCUS = 5 end class Form1 ##__BY_FDVR def self_created @listBox1.addCommandHandler(WMsg::LBN_DBLCLK, "dblclicked",MSGTYPE::ARGNONE,nil) @listBox1.addCommandHandler(WMsg::LBN_SETFOCUS, "gotfocus",MSGTYPE::ARGNONE,nil) @listBox1.addCommandHandler(WMsg::LBN_KILLFOCUS, "lostfocus",MSGTYPE::ARGNONE,nil) @listBox1.addString('みかん') @listBox1.addString('りんご') end def listBox1_dblclicked puts @listBox1.getTextOf(@listBox1.selectedIndex) end def listBox1_gotfocus; puts "gotfocus"; end def listBox1_lostfocus; puts "lostfocus"; end end ##__BY_FDVR
111 名前:102 mailto:sage [2006/08/24(木) 04:29:48 ] >>110 やっと正常に動作しました。どうやらフォーカスは無関係みたいです。 ・BN_DBLCLICKEDじゃなくて、ちゃんとLBN_DBLCLKを使う。 ・listboxに中身を入れる (つまり>>110 のソースどおり。LBN_SETFOCUS関係の設定は不要) で、理想的に動作しました。 実は私はlistboxの中身を空っぽの状態でテストしていました(謝)。 そして、listboxの中身が空っぽだと、>>110 のソースでも>>109 の状態になります。 何もないところをダブルクリックすると、その時点ではlistBox1_dblclickedを通らず、 窓を閉じたり、別の窓の後ろに動かしてからlistBox1_dblclicked を通ります。
112 名前:90 mailto:sage [2006/08/25(金) 00:02:19 ] >>103 >>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか) ダイアログにすることで、Alt+キーでボタンが押せました。情報ありがとうございました。
113 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 02:21:41 ] ちょっと質問ですが、 C#で書かれた.NETのプログラムがあり、ソースが公開されているとします。 このソースに手を加え、Rubyと通信できるようにして、RubyからC#のプログラムを コントロールしたり監視したりしたいとき、.NET→Ruby間の通信方法は、何が一番適切でしょうか。 条件は、 ・C#プログラム側で発生した変化を、出来るだけリアルタイムにRuby側で感知したい。 ・Ruby側から.NETにも情報を渡したい(双方向の通信)。 ・現時点では1台のマシンの中だけで閉じた状態のみを想定。
114 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 02:27:41 ] 何が一番適切か?というのは、 ・.NET、Ruby側ともその通信手段のライブラリが用意されており実装は容易。 ・通信の切断、再接続など、出来るだけライブラリ内で吸収していて、あまり記述しなくてもいいのが理想的。 つまり、作成も管理も一番簡単なのはどれでしょうという質問です。
115 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 02:31:32 ] socket
116 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 04:10:41 ] fxruby1.6.0がラッパしてるfox-toolkitの1.6.0でUnicodeをサポートする ようになったらWindows9系ではfxrubyのプログラムが動作しなくなった ttp://fox-toolkit.net/cgi-bin/wiki.pl?Unicode_Support Windows 95/98/ME FOX requires the Microsoft Layer for Unicode on Windows 95/98/Me Systems. For more information see the [MSLU website]. なんかMSLUとか言うのをどうにかすればいいらしいけど どうしたらいいの?
117 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 04:54:05 ] Microsoftがライブラリ配布してるからダウンロードしてインスコすれ
118 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 05:04:43 ] どっか説明してるサイトとかありますか?
119 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 06:22:39 ] ぐぐれ
120 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 06:55:54 ] ライブラリの名前だけでいいんだけど unicows.dll ← これ?
121 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 22:31:03 ] vrubyの画面にwebbrowserを貼り付けるサンプルは、 vruby.sourceforge.net/samples.html にあるが、 vrubyの画面にexcelを貼り付けられないものだろうか? と思って検索したら、 rd.search.goo.ne.jp/click?DEST=http://www.pen-chan.jp/~tdiary/pen-chan/20050106.html&no=1 に「VBとかだとExcelをフォームに貼り付けたりできたじゃん(おぼろげな記憶)。それはきっとOLEとか ActiveXでできてるだろうからvrubyでも可能なはず。OLEブラウザで名前を調べてテストしたが、 うまくいかん。あれは本当にOLEだったのか?そのへん調べてみるとOLEコンテナというシロモノらしい。 だめぽい。」 とある。 vrubyの画面にexcelは貼り付けられないということでFA? 同じ発想でOOo.orgのcalcを貼り付けられないか調査中。OOo自体はActiveXとして使えるらしいが、 openoffice-docj.sourceforge.jp/tr/temp/OOo11_Features.html OLEブラウザをみても、それに当たる物が見つからない(OOoインストール時にActiveXは選択している。) vruby以前の問題でうろうろしているが、成功例のサンプルとかどこかにある?
122 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 22:36:13 ] 両方無理
123 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 22:52:38 ] >>121 リンク先は読んでないが、Excelは「OLEサーバ」。 OLEオートメーションを使うためには、入れ物が「OLEコンテナ」である必要がある。 vrubyの実装がどうなっているのか知らないけど、そうなってないなら出来ない。 COMやActiveXを使えるからといって、OLEオートメーションが出来るとは限らない。 C/C++だってそうでしょ?
124 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 00:18:32 ] >>122-123 無理っすかあ。残念。
125 名前:113 mailto:sage [2006/08/28(月) 03:13:02 ] >>115 socket が一番簡単ですか?同じマシンで閉じているので ネットワーク通信ではなくプロセス間通信でもいいのですが。 >>121 のActiveXの話をみて、113に書いた条件とは少し変わってしまいますが、 C#とrubyとの接続方法として、C#でActiveXコンポーネントを作成して vrubyに貼り付けたりというのもあるのかもしれないと思いました。
126 名前:デフォルトの名無しさん [2006/08/29(火) 09:45:56 ] VR(Vert|Horiz)TwoPaneでセパレータをドラッグしたときにゴミが残るのうちだけ? @pane_2.moveしたときに再描画されなくてPatBltで描いた線が残ったままになってる。 もう一度PatBltして線を消すとか、@pane_2.refreshをするとかすればいいんだけど、 そうなってないってことは、うちの環境がおかしいの?
127 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 15:03:12 ] 複数Excelファイルの集計とか、全部Rubyでやってるよ。 最初はVBAでやってたけど、Ruby使い出すともう戻れないねぇ・・・ でも、Visualプログラミングはまだやる気起きないなぁ。 Delphi6で不満な局面がないし
128 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 21:33:47 ] >>125 別にソケットはネットワーク通信専用じゃないけど どうしてもいやならここらへんでも(つかったことないけど) jp.rubyist.net/magazine/?0005-RLR >>126 これかね vruby.sourceforge.net/cgi-bin/wiki.cgi?ReportedBugsVruby#i33
129 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 08:33:29 ] VRTwoPaneFrameは修正したけど、VRTwoPaneの方は修正してないみたいだね
130 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 08:44:06 ] >>127 王道はずしまくりですね
131 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 19:18:23 ] >>121 > vrubyの画面にwebbrowserを貼り付けるサンプルは、 > vruby.sourceforge.net/samples.html にあるが、 > vrubyの画面にexcelを貼り付けられないものだろうか? とりあえず、vrubyの画面にexcelを貼り付ける方法を発見。 上記のvruby.sourceforge.net/samples.html にあるActiveXのサンプル画面で、 "www.yahoo.co.jp/" と書かれている部分を、 "file://c:\\test.xls" のような、実在するexcelファイルを指定すれば出来る。 (そのパソコンのセキュリティの設定と関係してくるが。) 次に、ここで表示したexcelを、vruby側からコントロールしたいのだが、さてどうしたものか。
132 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 19:31:16 ] ActiveScriptRubyのActiveScript部分のみのインストール手順(必要なファイルとか登録するレジストリ情報とか) とかってどこかにないですかね? ActiveScriptRubyが入っていないPCでRubyで書いたHTAとかを動かしたいときに 関連物を全自動でさくっと登録したいです
133 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 22:07:00 ] >>132 artonさんのWikiに質問を書いてからblogのコメントに質問があるからWiki見ろゴルァとか書くと良いらしいと日記に書いてあったヨ。 >>131 documentを取得しようとするとExcelのインスタンスが取得できた稀ガス。
134 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:25:07 ] >>133 ちょっと試してみました。 @excel = @exp.ole_interface.Document # でExplorerAxControlのインスタンスからexcelを取り出し、 @sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、 p @sheet.Cells.Item(3,2).Value # でC2のセルを表示 できました。
135 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:53:06 ] >>134 > @sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、 は、 @sheet = @excel.Worksheets.Item("Sheet1") # で、シートを取り出し、 の間違いでした。 これが出来ると、excelの機能をまるまるvrubyのアプリケーションに使えそうで良い感じです。
136 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 09:45:06 ] Excelへの印刷まではrubyから制御してるんだけどさ、 プリンタのジョブが完了したとかあと何件残ってるとか監視したいんだけど それはWin32OLEやASRで出来るもの? 無理? どこから監視すればいいのかわからんとです。
137 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 12:29:06 ] >>136 コントロールパネルからプリンタの画面を見る。 ということが、Rubyから出来れば可能。出来なければ不可能。
138 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 12:36:58 ] ttp://www.tohoku.ricoh.co.jp/barcode/support/wpaper/wp0002/index.html win32apiの叩き方が分からないけど、こういうのがあった。 ユーザからしてみれば、ちょっとしたことだと思うんだけど いざやってみようとすると敷居たかいのね orz 敷居が高いというか低レベルなところでゴニョゴニョしないとダメというか ハンドルっていわれてもいまいち理解できていない今日この頃。 グチですまん
139 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 12:48:27 ] ネットワーク越しの対戦型囲碁ソフトってこれで作れます? 作れるけど困難? GUIアプリは作ったことありません。プログラミング経験は、Perl と Ruby のCGIだけです。 C#とかを勉強して、Visual Studio で作る方が近道でしょうか?
140 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 13:00:07 ] できると思うけど… GTPのライブラリはあるみたい? www.hiroshima-pu.ac.jp/~sasaki/cgf/gifu2004/regulations/sample.html
141 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 14:16:42 ] >>139 140でFA 自力でやるなら、やり方によるがネットワークプログラミングはどっちでも変わらんと思う。 地道にやると何にしろ面倒。 dRubyを使ってもいいのならRubyのほうが楽だと思う。
142 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 14:36:14 ] GUIだからってかまえなきゃいいんじゃない? Labelで○●+表示して、クリックイベント拾うとかw 通信を自前のメッセージにするのかGTPにも対応するかで 困難さはだいぶかわってくると思われ。 >>141 が書いてるdRuby使った案だとViewをWin32ネイティブにも CGIでのフロントエンドにもできていいんじゃない? (256本網道編っぽい)
143 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 15:17:11 ] >>140-142 サンクス。 Rubyでやってみます。
144 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 07:35:28 ] pstoreがmswin32でバグってるてのは多用している自分にとってびっくりだった。 次バージョンでのバグ修正を期待します。
145 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 17:08:05 ] winユーザーには冷たいですから
146 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 21:00:38 ] one-click Ruby をインストールしているマシンに ActiveScriptRubyをインストールしたらまずいことになりますか? やはりone-click Rubyをアンインストールしたほうがいいのでしょうか?
147 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 22:37:25 ] パスが違えば問題ないんじゃない?