過去の桐井戸端BBS (桐ver.8)
14396 キーダウンイベントでファンクションキーのF10が押せない。 Cyappy 2001/12/06-17:29
過去のBBSでうまく検索できなかったので改めて質問させていただきます。

ver.8sp6&win98で使ってます。

メイン&サブフォームでメインフォームのKEVに

手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード・・・)

 if ( &仮想キーコード ≧ 112 .and &仮想キーコード ≦ 123 )
   メソッド呼び出し @フォーム.キー変換( 7 )
   &仮想キーコード = &仮想キーコード - 111
   &実行名札名   = "bF" + #str( &仮想キーコード, 2 )
   coll &実行名札名()
   &処理中止 = 1
 else
   メソッド呼び出し @フォーム.キー変換( 0 )
   &処理中止 = 0
 end

手続き定義終了

というイベントを定義して、任意のファンクションキーが押されたら
フォーム上のコマンドボタンの様にに見えるラベルが押された形になり
対応する名札が実行されるようにしましたが、
F10だけは何もせずに素通りして、それ以外のファンクションキーはそれぞれ目的が達成されます。
ですが、このようなことは最初にF10を押したときだけで他のファンクションキーを押した後なら
F10も目的が達成されます。

F10キーはAltキーと同じ役割があり特殊なキーだということを聞いたことがあります。

何か回避方法があるのでしょうか?

14399 Re:キーダウンイベントのF10 bonito 2001/12/06-20:54
記事番号14396へのコメント
Cyappyさん、コメントがつきませんね (^^;
みなさん師走でお忙しいのかしら...っで答えになっていませんが
htmヘルプのキーダウンイベントの「ノート」に

>[F10]キーは、[Alt]キーと同じ役割を持つキーであるため、
>取得できません。[システムキーダウン]イベントで取得してください。
とありますね。

そこで同じくhtmヘルプのシステムキーダウンイベントを見ると

>[キーダウン]イベントが発生しているあいだは発生しません。
>たとえば、[Ctrl] キーが先に押されている場合は、
>[Alt]キーを押しても[システムキーダウン]イベントが発生しません。

ともあります。

>何か回避方法があるのでしょうか?

どうしても[F10]が使いたいのなら、私のあたまで思いつくのはやっぱ
システムキーダウンイベントを併用する事くらい...(残念)...
でもそれも面倒なので私だったら、[F8]までを使用して、その他は
別のキー(例えば[Shift]+とか)を押してもらって&フラグを拾うかな?

&スキャンコードは使ったこともないし、頭も悪いのでよく解りません。
でもそのうち、さるお方がいろいろと披露して下さるかも...(^^;

14400 Re:キーダウンイベントのF10 悲しげ 2001/12/06-22:51
記事番号14399へのコメント
私も「キーダウン」イベントでF1〜F12の全てを使うやつを作ったことがありますが、
F10だけは使いませんでした(好みでTabキーで代用)。
できないと書いてあることで、それ以上の追求をしなかったと云うことです。根性無しです。(^^;)
14488 Re:キーダウンイベントのF10 hidetake 2001/12/12-16:48
記事番号14400へのコメント
F10 を拾いたい場合は[システムキーダウン]イベント
を使う必要があるようです。

戻る