過去の桐井戸端BBS (桐ver.9) |
27430 | 桐9の計算機能フォーム上にボタンとして設置したい | 尾形 | 2004/08/19-17:41 |
よろしくお願いします http://www.kthree.co.jp/2seihin/1kiri9/2tips_kowaza/09/index.html 桐9から計算機能が追加されていますが これをフォーム上にボタンとして設置したいのですが 無理でしょうか | |||
27432 | Re:計算機能を制御したい | アックン | 2004/08/19-19:22 |
記事番号27430へのコメント 尾形さん、こんばんは。 ソース値取得メソッドで文字列タイプの変数に代入して、 コマンドコマンドで式の値を求めて、ソースと合致するタイプの変数に代入してから、テキストに戻すと。 やり直し(Shift+F11)は、変数値を一時的に保持しておくと。 だめかなあ。(^^; アックン(=^・^=) | |||
27433 | Re:計算機能を制御したい | hidetake | 2004/08/19-21:04 |
記事番号27432へのコメント >ソース値取得メソッドで文字列タイプの変数に代入して、 >コマンドコマンドで式の値を求めて、ソースと合致するタイプの変数に代入し >てから、テキストに戻すと。 http://www2u.biglobe.ne.jp/~s_tanaka/cgi-bin/bbs/bbs.cgi?function=logview_html&no=4#198 このことですよね。 | |||
27436 | Re:計算機能を制御したい | 悲しげ | 2004/08/19-21:42 |
記事番号27433へのコメント hidetakeさん wrote >このことですよね。 思い出しました。私はv9になってからこの手の記述は抜いてしまったので、 v8用のものを引っ張り出してきました。以下、コピペしておきます。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ******** 以下、いか様さまの項目電卓より ********* proc t某::入力前(参照 文字列 &編集文字列) &編集文字列=#s(&編集文字列,",","") end proc t某::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続) call (&編集文字列 .and &モード),command(&編集文字列,&入力継続) end proc t某::編集文字列変更() method &this.編集文字列取得(&WRKSTR) call (#文字位置(&WRKSTR,",") .and #半角(#sstr(&WRKSTR,1,1))<>"="),コンマ処理(&WRKSTR) end proc command(参照 文字列 &WKSTR,参照 長整数 &WK継続) エラー処理 手続き=error if(#半角(#sstr(&WKSTR,1,1))="=") &STRW="&件数W"+&WKSTR else &STRW="&件数W="+&WKSTR end コマンド &STRW if (&err) &WK継続=1,&err="" return else &WKSTR=#str(&件数W) エラー処理 end end proc error() 確認 "入力値の値もしくは計算式が間違っています" &err=1 end proc コンマ処理(参照 文字列 &WRKSTR2) 変数宣言 整数{&Slong} &WRKSTR=#S(&WRKSTR2,",","000") method &this.編集文字列設定(&WRKSTR) method &this.編集文字列長(&Slong) method &this.編集選択位置設定( &Slong+1 ,0 ) end 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 でも、これだとわざわざ釦をクリックするまでもなく、入力の最中に計算が実行されますね。(^^;) あえて「釦で」と云うのは、個々のテキストについて「入力*」等のイベントを設定せずに、汎用的にやりたいと云うことなのかな? v9で「ソース値更新」はファミリで扱えるようになってけど、「入力*」系は扱えないですもんね。さて・・・・。 | |||
27437 | Re:計算機能を制御したい | hidetake | 2004/08/19-21:59 |
記事番号27436へのコメント まぁ〜あまり好ましい方法とは言えないですけど 桐自体でキーコード送る方法はないと思いますので WSH を使って Shift + F9 を送る方法もあるにはあります。 更新モードの関係は別として次のようなスクリプトを作っておいて、コマンドボタンのシェル実行で実行する・・・ sendkeys.vbs --------------------------------------------- WScript.CreateObject("WScript.Shell").Sendkeys("+{F9}") --------------------------------------------- フォームのボタンクリックで自分自身に対し実行されればよいので誤爆はされにくいとは思います。 | |||
27438 | Re:計算機能を制御したい | hidetake | 2004/08/19-22:13 |
記事番号27437へのコメント >WScript.CreateObject("WScript.Shell").Sendkeys("+{F9}") ちなみに「元に戻す」ボタンも必要であれば Ctrl + z に割り付けられているので、次のスクリプトになります。 sendkeys2.vbs --------------------------------------------- WScript.CreateObject("WScript.Shell").Sendkeys("^z") --------------------------------------------- | |||
27440 | Re:計算機能を制御したい | hidetake | 2004/08/20-09:09 |
記事番号27438へのコメント >ちなみに「元に戻す」ボタンも必要であれば Ctrl + z に >割り付けられているので、次のスクリプトになります。 そう言えば、わざわざこんな事しなくとも、コマンドボタンには元々「元に戻す」機能はありましたね! (^^; | |||
27442 | Re:計算機能を制御したい | 尾形 | 2004/08/20-09:42 |
記事番号27430へのコメント どうも皆様ありがとうございます 過去の投稿も見てましたので、イベントをゴリゴリ書けば できるのはわかってましたけど、どうも好きでなかった (^^; ので、これなら簡単に色々な場所で使えると思ってお尋ねしてみました 簡単にはいかないようですね ボタン機能への追加忘れのような気がするけど 違うかな (^^;>K3さん | |||
27443 | Re:計算機能を制御したい | きりぎりす | 2004/08/20-13:01 |
記事番号27442へのコメント ちなみにソースが、 数値系(整数とか)の変数であれば計算式を入力することによって その結果が変数値として反映されます。(あまり知られていない裏技です;) ただ、IMEの設定が無視されてキーボードからは半角しか入力出来ないので 桐の関数とかは入力出来ませんが張付け(ペースト)は可能です。 念のため御参考までに。^^ |