Page 37 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼外部変形用コンボボックス kojima 15/04/03(金) 19:29 ─────────────────────────────────────── ■題名 : 外部変形用コンボボックス ■名前 : kojima ■日付 : 15/04/03(金) 19:29 -------------------------------------------------------------------------
外部変形用ツールバーを作ったのですが 外部変形の数が10以上になるとボタン(ツールバー)による選択だと スクリプトの書き換えが大変面倒なことに気付きました。 コンボボックスからのバッチファイル名選択だと、外部変形リスト(テキストファイル)に追記するだけですんでしまます。 外部変形を増やしたい時は、「編集」ボタンをクリックして、ghen_list.txtを開いて、バッチファイル名をフルパスで追記するだけです。 但し、パスの区切り文字は、\ではなく/です。 VRubyとAutoITXを使ったスクリプトです。(拡張子.rb) #!ruby -Ks require 'vr/vruby' require 'vr/vrcontrol' require 'win32ole' $itx=WIN32OLE.new("AutoITX3.Control") $itx.Opt("WinTitleMatchMode",2) def bat_read(file) dir,fname=File.split(file) dir2="|#{dir.gsub("/","|")}" dir_a=dir.split("/") $itx.WinActivate("jw_win") $itx.WinWaitActive("jw_win") $itx.WinMenuSelectItem("jw_win","","[その他","外部変形") $itx.WinWaitActive("ファイル選択") $itx.ControlFocus("ファイル選択","","SysTreeView321") str="#0" dir_a[0..-2].each{|item| $itx.ControlTreeView("ファイル選択","Tree1","SysTreeView321","Expand",str<<"|#{item}","") } $j=$itx.ControlTreeView("ファイル選択","Tree1","SysTreeView321","Select",dir2,"") if $j.to_i == 1 $itx.ControlFocus("ファイル選択","","SysListView321") $i=$itx.ControlListView("ファイル選択","","SysListView321","FindItem",fname,"") if $i.to_i != -1 $itx.ControlListView("ファイル選択","","SysListView321","Select",$i,"") $itx.ControlSend("ファイル選択","","SysListView321","{ENTER}") else messageBox("#{file}がありません") end else messageBox("#{file}がありません") end end module Frm_form1 def _form1_init self.caption = '印刷' self.move(300,656,600,70) self.top(0xffffffff) addControl(VRButton,'button1',"編集",425,0,80,24,1350565888) addControl(VRButton,'button2',"終了",510,0,80,24,1350565888) addControl(VRStatic,'static1',"外変選択",355,2,72,24) addControl(VRCombobox,'comboBox1',"",0,0,350,400,1342177795) font=@screen.factory.newfont('MS ゴシック',-12,0,4,0,0,0,49,128) @comboBox1.setFont(font) begin open("ghen_list.txt","r"){|f|} rescue open("ghen_list.txt","w"){|f| f.puts "C:/JWW/JWW_SMPL.BAT","C:/JWW/TENHYOU.BAT","C:/JWW/ZAHYOU.BAT" } end array=[] open("ghen_list.txt","r"){|f| while f.gets array<<$_.chomp end } @comboBox1.setListStrings(array) end def construct _form1_init end def button1_clicked system("notepad ghen_list.txt") end def button2_clicked close end def comboBox1_selchanged idx=@comboBox1.selectedString file=@comboBox1.getTextOf(idx) bat_read(file) end end VRLocalScreen.start Frm_form1 |