【ActiveScript】RubyをWindowsで使うスレ【GUI】 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
06/08/08 19:08:09
他プラットホームとの互換性なんかいらん!
漏れはWindowsの上だけで快適に使いたいんだ!
Windows独自の技術的な話題や、
Windows版だけのrubyの問題について語るスレ。

■ruby
 URLリンク(www.ruby-lang.org)

■ruby関連スレ
 ・Rubyについて Part 22 (本スレ?)
  スレリンク(tech板)
 ・Ruby初心者スレッドPart7
  スレリンク(tech板)l50



2:1
06/08/08 19:09:57
※暫定テンプレート※

■ActiveScriptRuby
(取りあえずこれをインスコすれば必要なものが一通りはいる。現時点の最新版は Ver. 1.8.4.5)
URLリンク(arton.hp.infoseek.co.jp)

 ※ASRに同梱されているもの(一部)
・ActiveScriptRuby設定
  ・ruby1.8.4 mswin32版
  ・GUIライブラリ visualuruby
  ・ライブラリ管理 RubyGems
  ・rubyからexeを作成 exerb

■visualuruby (RubyでWindowsのGUIが使える)
URLリンク(www.osk.3web.ne.jp)
(ASRに同梱)

 ※関連プロジェクト
 ・visualuruby用 GUIビルダ FormDesigner for Visualuruby
  URLリンク(homepage3.nifty.com)

■RDE (IDE 開発環境)
URLリンク(homepage2.nifty.com)

3:1
06/08/08 19:11:20
■その他

 ・Win32OLE 活用法
  URLリンク(jp.rubyist.net)

 ・Win32用ライブラリ Win32Util
   URLリンク(rubyforge.org) (ライブラリ置き場)
   URLリンク(jp.rubyist.net) (Rubyist Magazineの記事)

 ・Win32Module (ruby同梱のWin32APIをもうちょっとどうにかするライブラリ)
   URLリンク(www.moonwolf.com)

 ・ruby + .NET
  URLリンク(plas.fit.qut.edu.au)
  URLリンク(www.saltypickle.com)

4:デフォルトの名無しさん
06/08/08 19:13:02
>>1
重複スレ立てんな、馬鹿

5:1
06/08/08 19:21:19
他にも、cygwin版rubyの話とか、visualuruby以外の様々なGUIの話とか、
windows環境独自のややこしい話はこちらでどーぞ。


6:デフォルトの名無しさん
06/08/08 19:27:47
>>1
氏ね

7:デフォルトの名無しさん
06/08/08 19:37:44
この開き直り方いいね

8:デフォルトの名無しさん
06/08/08 19:40:00
>>1
糞スレたてんな

9:1
06/08/08 19:50:33
WindowsでRubyを使うまめ知識

EmEditor Ver6.0 は、ActiveScriptとして登録された言語ならば、
エディタのスクリプト言語として使用出来ます。
EmEditor Professional v6 (Windows Vista/2003/XP/2000)
URLリンク(www.emeditor.com)

ActiveScriptRubyをインストールすれば、EmEditorのマクロにRubyが使えます。


10:デフォルトの名無しさん
06/08/08 19:51:56
>>9
なに、何事もなかったように続けてんだよ。
氏ね。

11:1
06/08/08 20:08:34
WindowsでRubyを使うまめ知識

Windows用電子メールソフト Becky2には、
Rubyをスクリプトとして使用出来るようになるプラグインがあります。

Becky2 Internet Mail
URLリンク(www.rimarts.co.jp)

Becky2用Rubyプラグイン Beckrb - Yet Another Ruby/Becky!
URLリンク(www.tietew.net)



12:マイク ◆yrBrqfF1Ew
06/08/08 20:12:10
>>1
松本さんお疲れ

13:デフォルトの名無しさん
06/08/09 01:40:18
rubyをWindowsで使うために役立ちそうなweb

■ActiveScriptRuby 作者 arton氏のインタビュー記事
URLリンク(jp.rubyist.net)

■HTA(htmlをアプリケーションのように使えるwindows上の技術)関係
  ActiveScriptRubyをインストールすることで、HTAをRubyScriptで記述出来る

・HTML Applications 概要
  URLリンク(www.microsoft.com)
・HTML Applications の導入
  URLリンク(www.microsoft.com)




14:デフォルトの名無しさん
06/08/09 01:44:24
ここ最近ずっとOne-click Ruby InstallerかInstant Railsばっかりで、
ASRとはご無沙汰だなぁ。win32oleは結構使うが別にASRでなくても困らんし

他にもそんな人いない?

15:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/09 02:07:39
スタートメニューに自動登録してくれるのでありがたい。
あと、自動関連づけのRubyのパスおかしいのでいつも手で直す

CygwinもcoLinuxももInstantRailsも入れてますが何か?



16:デフォルトの名無しさん
06/08/09 02:45:09
■ One-Click Installer

 ・最新版
  URLリンク(rubyforge.org)

かな。

17:デフォルトの名無しさん
06/08/09 05:45:06
何が何でも情報を分散させたいみたいだな

18:1
06/08/09 15:52:07
まつもとゆきひろ 答える
URLリンク(slashdot.jp)
より、

問)
Ruby の利用者を増やすために何が必要だとお考えですか?

答(一部))
>Windows対応については多くの協力者が大変な苦労をしてメンテナンスしてくれています。
>もしもっとたくさんの人が情報や労力などを提供してくださればもっとよくなるでしょうが、
>ほっておいてもよくなることはないでしょう。
>Rubyが成功した理由の一部は、Ruby のような言語になにが必要か私が分かっていたことにあると思います。

>私はWindows について知識がないので、Windowsユーザにとって正しい判断ができるとは思えません。
>より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が「良い」のか
>きちんと定義できる人たちの積極的な参画によって実現できるのではないか、私は思います。


まあいまさらの話なのだが、

・作者のまつもと氏はWindowsの知識がない→「ほっておいても(windows版が)よくなることはないでしょう。」
・「より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が
「良い」のかきちんと定義できる人たちの積極的な参画によって実現できるのではないか」

なので、「どのようなWindow対応が「良い」のかきちんと定義できる人たち」
というのには俺はなれないけど、「どのようなものが欲しいか」という意見を
言うことは出来るわけで、このスレはそういう意見を書き残す場所として使って
欲しいとおもいこのスレを立てた。



19:デフォルトの名無しさん
06/08/09 17:02:02
そして誰も読まずにそのまま廃れて消えていくのであった

20:デフォルトの名無しさん
06/08/10 01:36:47
Windowsでruby使う奴はレジストリをいじっとくと幸せになれる

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001

21:デフォルトの名無しさん
06/08/10 17:06:03
>>20
kwsk

22:デフォルトの名無しさん
06/08/10 17:42:57
わかった。
URLリンク(support.microsoft.com) か。
thx >>20

23:デフォルトの名無しさん
06/08/10 17:57:37
なんでこのレジストリ指定が標準になってないんだ?

24:デフォルトの名無しさん
06/08/10 20:04:32
互換性がなくなるからとか?


25:デフォルトの名無しさん
06/08/10 20:54:48
どんな互換性?
MSのKBもそれを一切説明してないからさっぱりわからん。

26:デフォルトの名無しさん
06/08/10 21:23:24
なんで、標準入出力がデフォルトで存在すると思うのか、そっちの方がわからん。

27:デフォルトの名無しさん
06/08/10 22:41:21
コンソールアプリケーションだから。

28:デフォルトの名無しさん
06/08/10 22:44:52
>>27
何が?

29:デフォルトの名無しさん
06/08/10 23:32:38
コンソールが嫌いな人がいるみたいだから
VisualuRubyの話でもしようぜ

30:デフォルトの名無しさん
06/08/11 02:27:04
>>29

VisualuRuby いいんだけど不安定でちょっと困ってる。

31:デフォルトの名無しさん
06/08/11 08:14:17
>>1
GJ!
せっかくだからRuby on WindowsなWikiもあるといいかもな〜
ここはあえてPukiWikiでw

32:デフォルトの名無しさん
06/08/11 13:12:23
Hikiでいいじゃん。
hikilet.rbでWikiサーバ立ち上げて軽いメモ用に使ってるよ。



33:デフォルトの名無しさん
06/08/11 16:11:18
VisualuRubyのVRListviewがどうも不安定なので、こんな実験をした。(WinXP SP ASR1.8.4.4)

FormDegignerを使って簡単な画面を作る。画面にVRListviewを貼り付け、それにcolumnを3つぐらいセットする。
1秒に10行ぐらいのペースで、VRListviewにデータをAddItemしていくスレッドを動作させる。

この画面が動作している状態(リスト画面にデータが続々と挿入されている画面)で、
Windowの位置をマウスで移動させたり、Column 間の境界線をマウスでつまんで、
幅を動かそうとすると、すぐに画面が固まってしまう。

今回は1秒に10回という多めのデータ挿入だが、実際に使っている監視用の自作プログラムで、
30秒に1データぐらいのペースでVRListViewを書き換えるものを動作させていても、
十分ほどでなんのメッセージもなく落ちてしまったり、画面が固まったりする事がよくある。

34:デフォルトの名無しさん
06/08/11 16:13:55
VisualuRubyの画面は、ちょっとした操作で画面が固まったり、音もなくプログラムが終了してしまった
りすることが多い。とくに、単純なVREditよりも、VRListviewのような複雑な画面部品を使っていると
起こりやすい気がするし、画面の部品数が増えるほど、画面の書き換えが多いほど落ちやすくなる。

なんか、頻繁に画面部品を描き変える処理のタイミングがぶつかったときに落ちてるような気がする。
でも、Ruby側でMutexを使って描き変えのタイミングがぶつからないようにしても効果がなかった。

当然、マウスでcolumnを動かすなど、手で画面を書き換える動作が絡んでくるとさらに落ちる確率が上がる。

うーん。こーゆーのは、プログラムの書き方で回避出来る問題なんでしょうか?
また、FOXとかの他のGUIだとどうなんでしょう?

35:デフォルトの名無しさん
06/08/11 16:14:53
>>33-34
悪いが読む気が全くしない。

36:デフォルトの名無しさん
06/08/11 16:53:04
>>35
脳みそに蛆湧いてんちゃうか

37:デフォルトの名無しさん
06/08/11 18:22:07
Windows板でやれば?

38:デフォルトの名無しさん
06/08/13 01:02:58
VREdit/VRRadiobutton/VRCheckbox/VRButton
くらいしか使わないけど落ちたり固まったりしたことはないな

39:デフォルトの名無しさん
06/08/13 12:50:38
Microsoft、.NETに動的言語サポートを段階導入
URLリンク(www.itmedia.co.jp)

RubyCLR
URLリンク(thinkchiro.com)


40:デフォルトの名無しさん
06/08/13 17:24:38
そもそも、VisualuRubyで作られているFormDesignerがよく落ちる。

41:デフォルトの名無しさん
06/08/13 17:33:52
>>37
> Windows板でやれば?

Windows板の表題を検索したが、java VB VisualBasic C# delphi Python Perl Ruby など、
言語に関するスレは一つもなかった。Windows板でのRubyの話題は板違いだろう。


42:デフォルトの名無しさん
06/08/13 17:35:27
Ruby on Windowsに望むのは

.rbをコマンドプロンプト版に、
.rbwを非コンソール版に関連付けて欲しい。

環境変数pathextに.rbを登録したらfoo.rbを
dir /s /b | foo > result.txt
のように使えるようにして欲しい。

某インストーラで登録されるスタートメニューのアイコンの位置が微妙な所を改善。

Windows限定でいいので
Pathnameかなんかに'/' <-> '\\'の相互変換メソッドが欲しい

Rubyインストールするたびに上記の拡張子周りの設定して回るのは正直うんざり。


43:デフォルトの名無しさん
06/08/13 17:50:46
>>42
> Ruby on Windowsに望むのは
どのバイナリパッケージについていってる?

> 環境変数pathextに.rbを登録したらfoo.rbを
> dir /s /b | foo > result.txt
> のように使えるようにして欲しい。
>>20


44:デフォルトの名無しさん
06/08/13 17:57:27
そのうち出るだろう.NET版Rubyは.NET版としての進化を続けるだろうが、

いまのASRなどに期待したいのは、.NETになる前のVBのように、
Windowsでのプログラムを一通り手軽に実現出来る環境。

環境だけならかなりいいところまで出来ているんだけど、GUIが不安定で・・・


45:デフォルトの名無しさん
06/08/13 18:03:53
>>44
> GUIが不安定で・・・

あ、VisualuRubyの話ね。FXRubyとかは未確認。


46:デフォルトの名無しさん
06/08/13 18:10:47
>>>20
いや、そういう情報かき集めて手作業でやりたくないって話

47:デフォルトの名無しさん
06/08/14 03:39:11
今知ったんだからもう情報かき集める必要ないし、
バッチ書けば手作業の必要も無い

48:デフォルトの名無しさん
06/08/14 06:42:51
Ruby関連プロジェクトってって腰が重いよな・・・
個人的に不便に思ってる点が改善されたことが一度もない。

49:デフォルトの名無しさん
06/08/14 10:14:50
本スレでもそうだけど要望出るといちいち必要ないとか
火消しに回ってる部隊はなぜそんなことやってるのか意味がわからん

50:デフォルトの名無しさん
06/08/14 10:27:58
>>49
必要のあるなしを吟味せずに、無節操に取り入れていったらどうなるか考えてみろ

51:デフォルトの名無しさん
06/08/14 10:29:26
キターw

52:デフォルトの名無しさん
06/08/14 11:40:05
>>48
kwsk。出来れば具体的なプロジェクト名を。

>>49
2chに限定した話?

2chのスレや日記などであげられていた問題がきっかけで
直接修正されたということなら数回見たことがあるけど、
そんなにひどいことってあったかな。
出来ればどのスレのどの辺りって教えてくれませんか。


53:デフォルトの名無しさん
06/08/14 14:39:32
vrubyはdelphiみたいなAnchorsはないのかな
あれがあるだけでレイアウトが簡単になるのだが

54:デフォルトの名無しさん
06/08/14 14:48:16

    ∧∧  ミ _ ドスッ
    (   ,,)┌─┴┴─┐
   /   つ. 要望禁止│
 〜′ /´ └─┬┬─┘
  ∪ ∪      ││ _
           ゛゛'゛'゛

55:デフォルトの名無しさん
06/08/14 15:37:36
>>53
なんだAnchorsって。


56:デフォルトの名無しさん
06/08/14 15:39:50
>>53
Apollo使えば?

57:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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
06/08/15 19:13:51
>>58
その通りでした。おかげでうまくいきました。

60:デフォルトの名無しさん
06/08/15 22:23:50
>>42
> Windows限定でいいので
> Pathnameかなんかに'/' <-> '\\'の相互変換メソッドが欲しい

'\\'->'/'はFile.expand_pathでできるよね
'/'->'\\'は単純にgsubでも大丈夫だと思うけど
それじゃだめ?

61:デフォルトの名無しさん
06/08/15 22:39:38
デフォルトのパス区切りが/なんてWindows環境じゃありえないウンコ仕様は未来永劫直らないんだろうな。

62:デフォルトの名無しさん
06/08/15 22:44:57
別にどっちもウンコ仕様だとは思わないけど。

63:デフォルトの名無しさん
06/08/15 22:45:58
ああ、RubyのWin対応がウンコって意味か。
それなら同意

64:デフォルトの名無しさん
06/08/16 01:37:02
殺伐としてるなぁ

65:デフォルトの名無しさん
06/08/16 05:07:48
殺伐としてる割には進行遅いがな

66:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/16 16:52:24
なぜ作者に連絡したり、MLに投げたりという発想がないのか

68:デフォルトの名無しさん
06/08/16 16:59:27
定期巡回乙であります

69:デフォルトの名無しさん
06/08/16 23:01:17
>>66
手元でやってみたが固まりも落ちもしなかった

ひょっとしてActiveScriptRubyのせいじゃない?
るびま15号のartonさんインタビューで、XPでスレッド周りが動かなくなったとか言ってる

70:デフォルトの名無しさん
06/08/16 23:11:19
>>69
ActiveScriptRubyだけど、固まりも落ちもしなかった。

71:デフォルトの名無しさん
06/08/16 23:12:44
とりあえずお前らrubyとライブラリのバージョンくらい書け。

72:デフォルトの名無しさん
06/08/16 23:20:07
>>71
>>33に書かれてるじゃん

73:デフォルトの名無しさん
06/08/16 23:23:22
つか、動く報告があったんだから、>>33は他のWindowsバイナリでも落ちるのかどうか
検証してから報告して欲しいな。

74:デフォルトの名無しさん
06/08/17 00:28:39
>>66
ASR1.8.4.1で試したけど問題なし。
Webに行ったら1.8.4.5が出てたのでインストールして試したが問題なし。

75:33
06/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
06/08/17 02:29:09
XP Home SP2

77:74
06/08/17 02:42:38
>>75
どこでダウンロードできるのか書いといてくれよ。探したじゃん。
(URLリンク(ftp.ruby-lang.org))

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
06/08/17 02:59:06
もっかい>>33を読んで、「10分放置」をしてみたが、問題なし。

ライブラリ作者に、詳細な環境と状況を添えて、メールしたら?

79:69
06/08/17 04:21:31
swinとvrubyの最新リリースはvrswin060205とvruby060223だからね...
(ASRのパッケージはもちろん最新)
2年前の古いリリース使っておかしいよって言っても作者も困るでしょ

ちなみにおれの環境は
Windows2000SP4、garbagecollect.jpから落とした1.8.4のバイナリ
本家から落としたvrswin060205とvruby060223のセット
ぜんぜん問題なし

80:デフォルトの名無しさん
06/08/17 05:47:32
windows2000sp4, mswin32版rubyで固まった。swinのバージョンはよくわからん

81:デフォルトの名無しさん
06/08/17 16:08:30
swinのバージョンの検査は

require 'swin'
p SWin::VERSION

かな。
vrubyのバージョン検査方法は?


82:33
06/08/18 01:07:40
>>33 および、>>66のソースの件ですが、

require の3行の下に、

SWin::Application.thread_critical=true

を書き足した所、私の必ず落ちる環境でも、正常動作するようになりました。
よかった〜これでGUIを気兼ねなく使えるかも。

でもなんで?

URLリンク(www.osk.3web.ne.jp)

の一番最後に、

>mswin版はデフォルトでtrue。

と書いてあるので、この修正は必要ないと思っていたのに。

ちなみに、

p SWin::Application.thread_critical

でデフォルト値を表示してみるとfalseでした。
環境:ASR1.8.4.4


83:デフォルトの名無しさん
06/08/18 01:13:59
追伸
>>75 の、vrubyとswinのバージョンが古いcygwin版でも、
SWin::Application.thread_critical=true
の行を書き足すことで正常動作しました。

皆さんがテストしてくださったおかげで、問題点が絞り込め、
解決に到達出来たようです。本当にありがとうございました。

vrubyの中の人。不安定とか、あらぬ疑いをかけてごめんなさいでした。




84:デフォルトの名無しさん
06/08/18 01:35:45
なぜかはわからんが問題解決したってことでデフォルトFALSEに変更されてるっぽい
URLリンク(vruby.cvs.sourceforge.net)

QAにうそ書いてるってことだし、作者に報告しといたほうがいい気がする

85:vruby作者
06/08/20 14:54:02
いまここを発見しました。
mswin版rubyとGUIのスレッド相性は、Windowsの構造化例外が
どうとか(詳細忘れました)が原因で、その後ruby本体側の改修で直ったように
見えたので、mswin版もthread_critical=falseをデフォルトにしました。
cygwin版でもおかしなことが起こるということは、他にも何か問題あったんでしょうかね。
(とりあえずうちでは問題出てません。)

sqa.htmlは修正しておきます。

86:74
06/08/20 15:40:35
作者キターーーーーーー&乙であります。

87:デフォルトの名無しさん
06/08/21 11:03:40
dl2でドトネトらいくなライブラリを作ることを月狼に命じる

88:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/21 13:42:14
>>88
そういうのは、1.8.4で試すものです

90:デフォルトの名無しさん
06/08/21 16:57:26
visualurubyの画面で、ボタンのcaptionに ボタン(&B) と書いても
Alt+B でボタンが押せないんだけど、そういうものなのでしょうか?

なにか、簡単な設定かコード記述で使えるようになったりしますか?


91:デフォルトの名無しさん
06/08/21 22:32:06
>>90
URLリンク(vruby.sourceforge.net)

VBとかは(&B)とか書いただけでお手軽にショートカットキーが設定できたりするのかね?

92:デフォルトの名無しさん
06/08/21 22:45:11
ageてみる

>>88
core吐かせられるならgdbで追いかけられない?
1.8.5 preview4 が出たみたいだし
入れなおすついでにprintf突っ込んで追っかけてみるとか...

93:デフォルトの名無しさん
06/08/21 23:32:48
つーか、>>88は、自分の環境で1.8.4で動くのか落ちるのかはっきりさせろ

94:デフォルトの名無しさん
06/08/22 07:50:29
>>91
VB.NETならLabelのTextプロパティに"ほげ(&B)"って書いとけば
ショートカットキーが効くようになる。

# 多分VB6とかでも同じはず

95:デフォルトの名無しさん
06/08/22 09:25:59
>>93
めんどくさいのでマシン貸すから自分でやれば。

96:デフォルトの名無しさん
06/08/22 13:30:06
vrubyのリストボックスで、項目をダブルクリックした時に何か処理したいんだけど
どう書けばええの?

97:90
06/08/22 16:14:28
>>91
ありがとうございます。

> URLリンク(vruby.sourceforge.net)

確認しました。現状はこんな感じです。

・フォームデザイナ使用。form自体にVReyFeasibleをつけてキーイベントを拾おう。
・ありゃ、self_charイベントでは、ctrl+文字は拾えるが、alt+文字は拾えないみたい(進展がなければ、ctrl+文字で妥協しよう)
・ふむふむ、URLリンク(www.osk.3web.ne.jp) によると、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
06/08/22 16:32:47
>>97の補足です。

>他に、
>項目名(&K) [________]
>となっているとき、ALT+Kを押すと、入力フィールドにカーソルが移動します。

なぜ、labelに(&K)と書いてあるのに、フォーカスが入力フィールドのほうに行くのかというと、
VBAなどのフォームデザイナでは、入力フィールドに限らず、listやcomboboxなどの画面部品をフォームに
挿入したとき、その画面部品の見出しlabelがセットになって、グループ化されて一緒に挿入されます。
その、セットのlabelに(&K)と書くことで、画面部品にフォーカスが行くようになります。

内部的には、画面部品と、その部品用のlabelというのがリンクされた情報を保持しているのかもしれません。

ちなみに、1画面内に複数、(&K)を指定すると、そのときの動作は保証されないそうです。


99:デフォルトの名無しさん
06/08/23 02:51:24
>>97
vrinitにadd_parentcall("syschar")を追加しとけば親で拾えるよ
(AltはWM_CHARじゃなくてWM_SYSCHARで飛んでくるらしい)

あと、syscharに限んないけどフォーカスないと拾えないから注意
イベント拾い専用のコントロールに常時フォーカスさせて
そいつから一括してキーイベント拾うようにするとかしてくれ

100:デフォルトの名無しさん
06/08/23 07:32:46
最近Ruby使い始めたんだがすげーいいなこれ。
GUIが一瞬で出来し、適当に書いても動くしw

101:デフォルトの名無しさん
06/08/23 08:45:00
>>96
URLリンク(blade.nagaokaut.ac.jp)
↑みたいにして????_dblclickedで処理

vr/compat/vrcontrol.rbのVRListboxのところに
addCommandHandler(WMsg::LBN_DBLCLK, 'dblclicked',MSGTYPE::ARGNONE,nil)
を直接入れちゃってもいい


ってゆうか最初から入れとけよ作者

102:デフォルトの名無しさん
06/08/23 21:04:44
>>101

>>96ではないけど、

FormDesignerで画面を作ると、リストボックスは、別モジュールで
addControl(VRListbox,'listBox1',"listBox1",72,40,296,132,1350565889)
を使って定義され、別ファイルからこのモジュールをインクルードして
使うようになってるんだけど、

この状態で、
URLリンク(blade.nagaokaut.ac.jp)
と同等のサブクラス定義ってどうやればいいでしょうか?

(FormDegignerで生成したファイルには手をつけずに、自作のファイルの中だけで定義したい。)

103:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/24 01:52:06
しまった、sage損なった...

105:102
06/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:デフォルトの名無しさん
06/08/24 02:34:29
すごいなvruby
おらワクワクしてきたぞ

107:デフォルトの名無しさん
06/08/24 02:35:32
BN_????はボタンのやつで、LBN_????がリストボックスのやつ

108:102
06/08/24 02:42:56
>>107
>BN_????はボタンのやつで、LBN_????がリストボックスのやつ

ほんとだ。また何か勘違いしているのか?<自分


109:102
06/08/24 02:52:24
>>105 ですが、やっぱり変でした。
>>105 でリストボックスをダブルクリックすると、
listBox1_dblclicked は通ることは通るんだけど、
ダブルクリックした直後には通らず、一回画面を別画面の裏側にするとか、
画面を終了させないとlistBox1_dblclickedが動作しないです。

変な物を貼ってお騒がせしてすみませんです。


110:デフォルトの名無しさん
06/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
06/08/24 04:29:48
>>110

やっと正常に動作しました。どうやらフォーカスは無関係みたいです。

・BN_DBLCLICKEDじゃなくて、ちゃんとLBN_DBLCLKを使う。
・listboxに中身を入れる
(つまり>>110のソースどおり。LBN_SETFOCUS関係の設定は不要)

で、理想的に動作しました。

実は私はlistboxの中身を空っぽの状態でテストしていました(謝)。

そして、listboxの中身が空っぽだと、>>110のソースでも>>109の状態になります。

何もないところをダブルクリックすると、その時点ではlistBox1_dblclickedを通らず、
窓を閉じたり、別の窓の後ろに動かしてからlistBox1_dblclicked を通ります。


112:90
06/08/25 00:02:19
>>103
>>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか)

ダイアログにすることで、Alt+キーでボタンが押せました。情報ありがとうございました。

113:デフォルトの名無しさん
06/08/26 02:21:41
ちょっと質問ですが、
C#で書かれた.NETのプログラムがあり、ソースが公開されているとします。
このソースに手を加え、Rubyと通信できるようにして、RubyからC#のプログラムを
コントロールしたり監視したりしたいとき、.NET→Ruby間の通信方法は、何が一番適切でしょうか。
条件は、
・C#プログラム側で発生した変化を、出来るだけリアルタイムにRuby側で感知したい。
・Ruby側から.NETにも情報を渡したい(双方向の通信)。
・現時点では1台のマシンの中だけで閉じた状態のみを想定。


114:デフォルトの名無しさん
06/08/26 02:27:41
何が一番適切か?というのは、

・.NET、Ruby側ともその通信手段のライブラリが用意されており実装は容易。
・通信の切断、再接続など、出来るだけライブラリ内で吸収していて、あまり記述しなくてもいいのが理想的。

つまり、作成も管理も一番簡単なのはどれでしょうという質問です。


115:デフォルトの名無しさん
06/08/26 02:31:32
socket

116:デフォルトの名無しさん
06/08/27 04:10:41
fxruby1.6.0がラッパしてるfox-toolkitの1.6.0でUnicodeをサポートする
ようになったらWindows9系ではfxrubyのプログラムが動作しなくなった

URLリンク(fox-toolkit.net)

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:デフォルトの名無しさん
06/08/27 04:54:05
Microsoftがライブラリ配布してるからダウンロードしてインスコすれ

118:デフォルトの名無しさん
06/08/27 05:04:43
どっか説明してるサイトとかありますか?

119:デフォルトの名無しさん
06/08/27 06:22:39
ぐぐれ

120:デフォルトの名無しさん
06/08/27 06:55:54
ライブラリの名前だけでいいんだけど
unicows.dll ← これ?

121:デフォルトの名無しさん
06/08/27 22:31:03
vrubyの画面にwebbrowserを貼り付けるサンプルは、
URLリンク(vruby.sourceforge.net)にあるが、
vrubyの画面にexcelを貼り付けられないものだろうか?

と思って検索したら、
URLリンク(rd.search.goo.ne.jp)
に「VBとかだとExcelをフォームに貼り付けたりできたじゃん(おぼろげな記憶)。それはきっとOLEとか
ActiveXでできてるだろうからvrubyでも可能なはず。OLEブラウザで名前を調べてテストしたが、
うまくいかん。あれは本当にOLEだったのか?そのへん調べてみるとOLEコンテナというシロモノらしい。
だめぽい。」
とある。

vrubyの画面にexcelは貼り付けられないということでFA?

同じ発想でOOo.orgのcalcを貼り付けられないか調査中。OOo自体はActiveXとして使えるらしいが、
URLリンク(openoffice-docj.sourceforge.jp)
OLEブラウザをみても、それに当たる物が見つからない(OOoインストール時にActiveXは選択している。)
vruby以前の問題でうろうろしているが、成功例のサンプルとかどこかにある?



122:デフォルトの名無しさん
06/08/27 22:36:13
両方無理

123:デフォルトの名無しさん
06/08/27 22:52:38
>>121
リンク先は読んでないが、Excelは「OLEサーバ」。
OLEオートメーションを使うためには、入れ物が「OLEコンテナ」である必要がある。
vrubyの実装がどうなっているのか知らないけど、そうなってないなら出来ない。

COMやActiveXを使えるからといって、OLEオートメーションが出来るとは限らない。
C/C++だってそうでしょ?

124:デフォルトの名無しさん
06/08/28 00:18:32
>>122-123

無理っすかあ。残念。


125:113
06/08/28 03:13:02
>>115
socket が一番簡単ですか?同じマシンで閉じているので
ネットワーク通信ではなくプロセス間通信でもいいのですが。

>>121のActiveXの話をみて、113に書いた条件とは少し変わってしまいますが、
C#とrubyとの接続方法として、C#でActiveXコンポーネントを作成して
vrubyに貼り付けたりというのもあるのかもしれないと思いました。



126:デフォルトの名無しさん
06/08/29 09:45:56
VR(Vert|Horiz)TwoPaneでセパレータをドラッグしたときにゴミが残るのうちだけ?
@pane_2.moveしたときに再描画されなくてPatBltで描いた線が残ったままになってる。
もう一度PatBltして線を消すとか、@pane_2.refreshをするとかすればいいんだけど、
そうなってないってことは、うちの環境がおかしいの?

127:デフォルトの名無しさん
06/08/29 15:03:12
複数Excelファイルの集計とか、全部Rubyでやってるよ。
最初はVBAでやってたけど、Ruby使い出すともう戻れないねぇ・・・

でも、Visualプログラミングはまだやる気起きないなぁ。
Delphi6で不満な局面がないし

128:デフォルトの名無しさん
06/08/29 21:33:47
>>125
別にソケットはネットワーク通信専用じゃないけど
どうしてもいやならここらへんでも(つかったことないけど)
URLリンク(jp.rubyist.net)

>>126
これかね
URLリンク(vruby.sourceforge.net)

129:デフォルトの名無しさん
06/08/30 08:33:29
VRTwoPaneFrameは修正したけど、VRTwoPaneの方は修正してないみたいだね

130:デフォルトの名無しさん
06/08/30 08:44:06
>>127
王道はずしまくりですね

131:デフォルトの名無しさん
06/08/30 19:18:23
>>121
> vrubyの画面にwebbrowserを貼り付けるサンプルは、
> URLリンク(vruby.sourceforge.net)にあるが、
> vrubyの画面にexcelを貼り付けられないものだろうか?


とりあえず、vrubyの画面にexcelを貼り付ける方法を発見。

上記のURLリンク(vruby.sourceforge.net)にあるActiveXのサンプル画面で、
"URLリンク(www.yahoo.co.jp)
と書かれている部分を、
"file://c:\\test.xls"
のような、実在するexcelファイルを指定すれば出来る。
(そのパソコンのセキュリティの設定と関係してくるが。)

次に、ここで表示したexcelを、vruby側からコントロールしたいのだが、さてどうしたものか。


132:デフォルトの名無しさん
06/08/30 19:31:16
ActiveScriptRubyのActiveScript部分のみのインストール手順(必要なファイルとか登録するレジストリ情報とか)
とかってどこかにないですかね?
ActiveScriptRubyが入っていないPCでRubyで書いたHTAとかを動かしたいときに
関連物を全自動でさくっと登録したいです

133:デフォルトの名無しさん
06/08/30 22:07:00
>>132
artonさんのWikiに質問を書いてからblogのコメントに質問があるからWiki見ろゴルァとか書くと良いらしいと日記に書いてあったヨ。

>>131
documentを取得しようとするとExcelのインスタンスが取得できた稀ガス。

134:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/30 23:53:06
>>134

> @sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、
は、
@sheet = @excel.Worksheets.Item("Sheet1")          # で、シートを取り出し、
の間違いでした。

これが出来ると、excelの機能をまるまるvrubyのアプリケーションに使えそうで良い感じです。



136:デフォルトの名無しさん
06/09/03 09:45:06
Excelへの印刷まではrubyから制御してるんだけどさ、
プリンタのジョブが完了したとかあと何件残ってるとか監視したいんだけど
それはWin32OLEやASRで出来るもの? 無理?
どこから監視すればいいのかわからんとです。

137:デフォルトの名無しさん
06/09/03 12:29:06
>>136
コントロールパネルからプリンタの画面を見る。
ということが、Rubyから出来れば可能。出来なければ不可能。

138:デフォルトの名無しさん
06/09/03 12:36:58
URLリンク(www.tohoku.ricoh.co.jp)

win32apiの叩き方が分からないけど、こういうのがあった。
ユーザからしてみれば、ちょっとしたことだと思うんだけど
いざやってみようとすると敷居たかいのね orz

敷居が高いというか低レベルなところでゴニョゴニョしないとダメというか
ハンドルっていわれてもいまいち理解できていない今日この頃。
グチですまん

139:デフォルトの名無しさん
06/09/03 12:48:27
ネットワーク越しの対戦型囲碁ソフトってこれで作れます?
作れるけど困難?

GUIアプリは作ったことありません。プログラミング経験は、Perl と Ruby のCGIだけです。
C#とかを勉強して、Visual Studio で作る方が近道でしょうか?

140:デフォルトの名無しさん
06/09/03 13:00:07
できると思うけど…
GTPのライブラリはあるみたい?

URLリンク(www.hiroshima-pu.ac.jp)

141:デフォルトの名無しさん
06/09/03 14:16:42
>>139
140でFA
自力でやるなら、やり方によるがネットワークプログラミングはどっちでも変わらんと思う。
地道にやると何にしろ面倒。
dRubyを使ってもいいのならRubyのほうが楽だと思う。

142:デフォルトの名無しさん
06/09/03 14:36:14
GUIだからってかまえなきゃいいんじゃない?
Labelで○●+表示して、クリックイベント拾うとかw

通信を自前のメッセージにするのかGTPにも対応するかで
困難さはだいぶかわってくると思われ。

>>141が書いてるdRuby使った案だとViewをWin32ネイティブにも
CGIでのフロントエンドにもできていいんじゃない?
(256本網道編っぽい)

143:デフォルトの名無しさん
06/09/03 15:17:11
>>140-142
サンクス。
Rubyでやってみます。


144:デフォルトの名無しさん
06/09/08 07:35:28
pstoreがmswin32でバグってるてのは多用している自分にとってびっくりだった。
次バージョンでのバグ修正を期待します。

145:デフォルトの名無しさん
06/09/08 17:08:05
winユーザーには冷たいですから

146:デフォルトの名無しさん
06/09/08 21:00:38
one-click Ruby をインストールしているマシンに
ActiveScriptRubyをインストールしたらまずいことになりますか?

やはりone-click Rubyをアンインストールしたほうがいいのでしょうか?

147:デフォルトの名無しさん
06/09/08 22:37:25
パスが違えば問題ないんじゃない?

148:デフォルトの名無しさん
06/09/09 00:50:01
One-click をインストールすると、環境変数
RUBYOPT=-rubygems
が設定されるから、場合によっては不都合あるかもな

149:デフォルトの名無しさん
06/09/09 02:41:58
コマンドプロンプト毎に環境変数設定するバッチファイル書けば?

150:デフォルトの名無しさん
06/09/09 17:37:43
IronPython正式版が出たけど、はやくRubyも.NETで動くようにならないかなと期待。
URLリンク(plas.fit.qut.edu.au)
が一番、プロジェクトとして近いのかな?



151:デフォルトの名無しさん
06/09/09 20:14:04
>>150
IronRubyてのを聞いた気が…。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4371日前に更新/175 KB
担当:undef