'拡張Openメニュー ' ' ' dim mname$ proc main dim maxhis,his$[50] dim title$ dim viewtype dim ret$,ret,tmp$,tmp '設定ファイル名の取得 mname$=macrofilename$ mname$=left$(mname$,inrstr(mname$,".")-1) 'もしINIファイルが無い場合は新規作成 tmp$=getprofile$("基本情報","タイトル",mname$+".ini") if tmp$="" then writeprofile "基本情報","タイトル","拡張Openダイアログ第3版",mname$+".ini" writeprofile "基本情報","バージョン","07/29/2002版",mname$+".ini" writeprofile "履歴","最大個数(5〜30)","10",mname$+".ini" writeprofile "履歴","履歴のパス名は表示しない(ON/OFF)","ON",mname$+".ini" end if 'INIファイルの読み込み title$=getprofile$("基本情報","タイトル",mname$+".ini") maxhis=val(getprofile$("履歴","最大個数(5〜30)",mname$+".ini")) viewtype=get_onoff(getprofile$("履歴","履歴のパス名は表示しない(ON/OFF)",mname$+".ini")) 'メニューの作成 dim list$[60],list2$[60],x x=1 list$[x]="キャンセル":list2$[x++]="@@@cancel" list$[x]="-":list2$[x++]="" list$[x]=">新規作成/開く/設定":list2$[x++]="" list$[x]="新規作成":list2$[x++]="@@@filenew" list$[x]="-":list2$[x++]="" list$[x]="開く(InputBox)":list2$[x++]="@@@open_inputobox" list$[x]="開く(コモンダイアログ)":list2$[x++]="@@@open_common" list$[x]="開く(QX専用ダイアログ)":list2$[x++]="@@@open_qx" list$[x]="-":list2$[x++]="" list$[x]="QX設定ファイルを開く" tmp$=@@macrodirectory$ if right$(tmp$,1)<>"\" then tmp$=tmp$+"\" if dir$(tmp$+"qfile.mac")="" then list$[x]=chr$(1)+list$[x] list2$[x++]="@@@qxsetfile" list$[x]="QXWKEY.INI内のマクロ一覧" tmp$=macrofilename$ tmp$=left$(tmp$,inrstr(tmp$,"\")) if dir$(tmp$+"crqkmlst.mac")="" then list$[x]=chr$(1)+list$[x] list2$[x++]="@@@qxkeymacro" list$[x]="-":list2$[x++]="" list$[x]=">設定":list2$[x++]="" list$[x]="表示する履歴の数":list2$[x++]="@@@config_history" list$[x]=">履歴の表示方法":list2$[x++]="" list$[x]="ファイル名のみ" if viewtype=1 then list$[x]=chr$(2)+list$[x] list2$[x++]="@@@config_view_1" list$[x]="パス名+ファイル名" if viewtype<>1 then list$[x]=chr$(2)+list$[x] list2$[x++]="@@@config_view_2" list$[x]="<":list2$[x++]="" list$[x]="<":list2$[x++]="" list$[x]="<":list2$[x++]="" list$[x]="-":list2$[x++]="" '適当 dim d,s,j,k,r$,n$,p[255] j = 0:p[j] = @@GetHwnd(1):do while p[j]<>0:j = j + 1:p[j] = @@GetHwnd(0):loop if j<>0 then for k=0 to j-1:@@activehwnd2 p[k]:n$=n$+@Pathname$+chr$(13):next do while @@filehistory$(d+1)<>"" and s0 then end tmp= msgbox("指定のファイルは存在しませんでした。"+chr$(13)+"履歴から削除しますか?",4+&h30,"確認") if tmp=IDYES then @@filehistorydelete val(list$[ret]),1 '$不安… end elseif lcase$(ret$)="@@@cancel" or ret$="" then end elseif lcase$(ret$)="@@@filenew" then @filenew:end elseif lcase$(ret$)="@@@qxsetfile" then @@JumpMacro "qfile.mac,main" end elseif lcase$(ret$)="@@@qxkeymacro" then @@JumpMacro left$(mname$,inrstr(mname$,"\"))+"crqkmlst.mac,main" end elseif lcase$(ret$)="@@@open_inputobox" then tmp$=inputbox$("開くファイル名を入力してください。"+chr$(13)+"パス名を省略した場合は現在編集中のファイルが存在するパスを適用します。","ファイルを開く","","") if tmp$="" then end if instr(tmp$,"\")=0 then 'パス名の作成 ' ret$=@pathname$ ' ret$=left$(ret$,inrstr(ret$,"\")) ret$=""' if ret$="" then ret$=getfolder$(title$) if ret$="" then end end if if right$(ret$,1)<>"\" then ret$=ret$+"\" tmp$=ret$+tmp$ end if call @@openfile(tmp$) end elseif lcase$(ret$)="@@@open_common" then if @hwnd=0 then @fileopencommon else @@JumpMacro"QOPEN.MAC,OpenCurrentFile" end if end elseif lcase$(ret$)="@@@open_qx" then @fileopenQX end elseif lcase$(ret$)="@@@config_history" then ret=inputbox("ポップアップメニューに表示するヒストリー数を入力してください。範囲は5〜30の間です。"+"何も指定しない場合はエラーとなります。"+"作者の推奨は7〜15程度です。","表示するヒストリー数の設定",maxhis) if ret>30 then end if ret<5 then end writeprofile "履歴","最大個数(5〜30)",str$(ret),mname$+".ini" call msgbox("ヒストリー数を"+str$(ret)+"個に設定しました。") elseif lcase$(ret$)="@@@config_view_1" then writeprofile "履歴","履歴のパス名は表示しない(ON/OFF)","ON",mname$+".ini" elseif lcase$(ret$)="@@@config_view_2" then writeprofile "履歴","履歴のパス名は表示しない(ON/OFF)","OFF",mname$+".ini" elseif lcase$(ret$)="@@@history" then @filelastlist end else call msgbox("予期しないエラーが発生しました。。。",MB_ICONSTOP,title$) end end if end end proc '汎用ルーチン dim icut$ function replace$(a$,b$,c$) dim d$,e do while instr(a$,b$)<>0 d$=ileft$(a$,b$):a$=icut$ a$=d$+c$+a$ loop replace$=a$ end function function ileft$(a$,b$) dim c,e$ c=instr(a$,b$) if c=0 then a$=a$:e$="" else e$=mid$(a$,c+len(b$)) a$=left$(a$,c-1) end if icut$=e$ '05/30/2002 icut$関数をileft$に併合 ileft$=a$ end function function get_onoff(a$) '05/30/20002 get_onoff=0 'デフォルト if ucase$(trim$(a$))="ON" then get_onoff=1 if ucase$(trim$(a$))="TRUE" then get_onoff=1 if ucase$(trim$(a$))="YES" then get_onoff=1 if ucase$(trim$(a$))="OK" then get_onoff=1 if ucase$(trim$(a$))="-1" then get_onoff=1 if ucase$(trim$(a$))="1" then get_onoff=1 end function