過去の桐井戸端BBS (桐ver.8)
16155 訂正モードのときファンクションキーへのキーダウンイベントが実行されない 若葉マークン 2002/05/27-11:15
質問ばかりですみません。誰か教えてください。
桐Ver8.SP6 IMEは松茸です。
F4キーのキーダウンイベントで、
一般手続きとして定義している”ABC”と言うイベントを
実行させようと思っています。
キーダウンイベントの記述を以下の通りしました。
proc フォーム::キーダウン(  …  )

if (&仮想キーコード=115)
method @フォーム.キー変換(7)
call abc()
&処理中止=1



end
end
表示モードのときは問題ありません。(キー変換も&処理中止=1も不要です。)
しかし、訂正モードの時には松茸の記号一覧が出てきます。
イベント”ABC”は実行されません。
制御することは可能なのでしょうか?
16156 Re:Fキーへのキーダウンイベント 悲しげ 2002/05/27-12:35
記事番号16155へのコメント
どもっ、若葉マークンさん

これはファンクションキーに限ったことではありませんで、
一般的に私は次のように記述して使っています。
--------------------------------------------
手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,・・・・
 var 自動,長整数{&更新モード}
 method @フォーム.更新モード取得(&更新モード)
 cond(&更新モード>) return
 if(&仮想キーコード=・・・・・)
  ・・・・・・
--------------------------------------------
こうしておくと、以降に記述した処理は表示モードの時だけ実行される
(更新中のモードの時には実行されない)からです。
16158 Re:Fキーへのキーダウンイベント 若葉マークン 2002/05/27-14:50
記事番号16156へのコメント
>--------------------------------------------
>こうしておくと、以降に記述した処理は表示モードの時だけ実行
>される(更新中のモードの時には実行されない)からです。

悲しげサマ いつもありがとうございます。
説明不足でしょうか?
更新モードの時も、表示モードのときと同じように
F4キーのキーダウンイベントでイベント”ABC”を実行したいのです。

16160 Re:Fキーへのキーダウンイベント 悲しげ 2002/05/27-16:27
記事番号16158へのコメント
>更新モードの時も、表示モードのときと同じようにF4キーの
>キーダウンイベントでイベント”ABC”を実行したいのです。

あぅ、失礼しました、誤読でした。(^^;)
あまり難しく考えずに、一応次のように試してみたところ、
表示モードでも非表示モードでも手続きABCを実行できるようです。
-------------------------------------------------------
手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 ・・・・
 var 自動,長整数{&更新モード}
 method @フォーム.更新モード取得(&更新モード)
 if (&仮想キーコード=115)
  if(&更新モード>0)
   method @フォーム.更新モード設定(0)
   &処理中止=1
  end
  *method @フォーム.キー変換(7)
  call ABC()
  *&処理中止=1
-------------------------------------------------------
F4キーの場合は放っておいても表示モードにはなるのですが、
手続きABCの処理が更新中のモードでは不具合になる可能性があるのだったら、
先に更新モードを0にして処理中止を入れておいた方がいいと想定してみました。


読んでみて思ったのですが、本当にF4キーなんですよね?

>訂正モードの時には松茸の記号一覧が出てきます。

これって一般には[Ctrl]+[F3]または[B]の[F3]の筈なんですが、
F4でこれが出て来ると云うことは、
かなりのキーカスタマイズをしているとも思われ、
となると、私はその辺の制御は試したことがないので、
実はよく判らなかったりします。(^^;)

16162 Re:Fキーへのキーダウンイベント 若葉マークン 2002/05/27-17:50
記事番号16160へのコメント
>読んでみて思ったのですが、本当にF4キーなんですよね?
>
>>訂正モードの時には松茸の記号一覧が出てきます。
>
>これって一般には[Ctrl]+[F3]または[B]の[F3]の筈なんですが、
>F4でこれが出て来ると云うことは、かなりのキーカスタマイズ
>をしているとも思われ、となると、私はその辺の制御は試した
>ことがないので、実はよく判らなかったりします。(^^;)

忙しいところ、ほんとにすみません。
『かなりのキーカスタマイズ』など一切しておりません。
イヤ、できません。
桐の環境設定で”松茸使用、ファンクションバーは使用しない”としているだけです。ヨ
ファンクションバーを使用するときのF3と同じ記号一欄がでてきます。

16165 Re:Fキーへのキーダウンイベント 悲しげ 2002/05/27-21:20
記事番号16162へのコメント
どもっ、若葉マークン

>桐の環境設定で”松茸使用、ファンクションバーは使用しない”と

わ、そおだったんですか。
すると、生ま(なま)の松茸が立ち上がって、それでF4が「記号」になると云う訳ですね。
事情はすっかり了解しました。
すっかり了解はしましたが、いかんせん「ファンクションバーを使用しない」設定は
一度も使ったことがないので、すいません、降参っす。

この設定だと、ファンクションキーは桐の制御を離れて、
全面的にIMEに委ねられているようですね。
桐側からIMEを一時的に殺すことができれば何とかなりそうな気もするのですが、制御の仕方はワカラナイ。
16166 Re:Fキーへのキーダウンイベント hidetake 2002/05/27-21:31
記事番号16165へのコメント
>この設定だと、ファンクションキーは桐の制御を離れて、全面的にIME
>に委ねられているようですね。桐側からIMEを一時的に殺すことができ
>れば何とかなりそうな気もするのですが、制御の仕方はワカラナイ。

制御の仕方がわかっても、それを制御するには
桐が何らかのアクションを受け取らないといけないわけで、
でも、その前に IME がファンクションを乗っ取っているので桐にはアクションが伝わらず、
結局、どうしようも無いのでは?

IME のキーアクション(イベント)まで監視するような、
もっと深いレベルの仕組みが必要なのでは?


16168 Re:Fキーへのキーダウンイベント 悲しげ 2002/05/27-21:43
記事番号16166へのコメント
どもっ、hidetakeさん、やっぱしそうですか。

では、若葉マークン、
云い換えると「ファンクションバーを使用しない」設定では、
「桐側からファンクションキーを制御しない」ことにも近いような感じですから、
キーダウンイベントでファンクションキーを制御することは止めた方がよさそうです。
ファンクションキー以外のキー(IMEとぶつからないもの)を利用するか、
どうしてもファンクションキーを使いたければ、環境設定で
「使用する」にチェックを入るようにするしかない?
16169 Re:Fキーへのキーダウンイベント hidetake 2002/05/27-21:45
記事番号16166へのコメント
もし、どうしても!どうしても!やりたい場合は
できるかどうか確認したわけでは無いのですが、
桐の SYSTEM フォルダにある「MTDRV41.EXE」を
実行できないように「MTDRV41.EX!」等とリネームしてみる!

桐の「コード」「JIS」は、この MTDRV41.EXE が実体だから、
タブン、これを使えないようにする事でファンクションも無効になるような気がします。
おそらく松茸も MTDRV41.EXE を呼び出しているだけのような気がします。

ただし、当然のごとく「コード」や「JIS」や
「部首」等が使えなくなります。

また、事故自己責任で・・・

松茸は使っていないし使えない環境ですので
実際の動作までは確認していません。


16189 Re:諸兄に感謝 若葉マークン 2002/05/28-17:49
記事番号16155へのコメント
>云い換えると「ファンクションバーを使用しない」設定では、
>「桐側からファンクションキーを制御しない」ことにも近い
>ような感じですから、キーダウンイベントでファンクション
>キーを制御することは止めた方がよさそうです
なるほど????
悲しげ様、hidetake様、ありがとサン。
内容的に難しく、理解困難ですがムリだと言うことだけは理解しました。
しかし…
イベント処理のヘルプ記述によれば
『キー変換メソッドで7を指定した後に&処理中止に1を代入すると
 桐とWindowsが割り当てたキーの機能をすべて無効にすることができる』
となっているのですが…
更に…
私の使用しているIMEは松茸Ver4.1で桐の仲の良い兄弟?なのですが???
16194 Re:諸兄に感謝 悲しげ 2002/05/28-21:32
記事番号16189へのコメント
どもっ、若葉マークン(さん)

>『キー変換メソッドで7を指定した後に&処理中止に1を代入すると
>桐とWindowsが割り当てたキーの機能をすべて無効にすることができる』

(IMEが割り当てたキーは桐とWindowsが割り当てたキーではありません)
と云う注釈がついたりして。(^^;)
桐を使っている時は、Windowsが割り当てたキー機能の一部を桐が乗っ取っている、
さらに桐が割り当てたキー機能の一部を(ファンクションバーを使わない設定だと)IMEが乗っ取っていると考えれば、
それなりに趣旨が通るのではないでせうか?

戻る