過去の桐井戸端BBS (桐ver.9)
19676 フォームでのアクセスキーとシステムキーダウンイベントで挙動がおかしい? ケント 2003/03/29-16:30
皆さんこんにちは

私の地方ではこの4,5日最高気温が10度を越える日が続き
「春だな〜(^.^)」
と実感するこのごろです。
皆さんのところはいかがでしょうか。
桜が咲いている(すでに散っている?)ところもあるんでしょうね。

さて本日V9をいじっていてちょっと気づいたことがあります。
sp1は未導入です。

フォーム上にコマンドボタンを2つ(c_直前値,c_値複写)配置してあります。
機能名 標題
直前値 直前値&P
値複写 値複写&L

アクセスキーの機能でALT+P,ALT+Lでそれぞれ使用しています。

ところが、表示モードの時に値複写は機能して直前値は機能しないのが気に入らず、
表示モードでも直前値が機能するように考えてみました。

手続き定義開始 フォーム::システムキーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止)
ケース開始
ケース(#編集状態(1)=0 .and &仮想キーコード=80)
*表示モードの時、"ALT+P"をキー入力すると直前値(同一オブジェクトのみ)を複写する。
メソッド呼び出し @フォーム.更新モード設定(2)
メソッド呼び出し @c_直前値.実行()
メソッド呼び出し @フォーム.更新モード設定(0)
&処理中止=1
ケース(&仮想キーコード=80)
*訂正挿入追加モードの時、"ALT+P"をキー入力すると直前値(同一オブジェクトのみ)を複写する。
メソッド呼び出し @c_直前値.実行()
&処理中止=1
ケース終了
手続き定義終了

こんなもんだろうと、テストするとぜんぜん動きません。
1時間くらいあーだこーだとやって(過去記事の検索もできないし)
その結果コマンドボタンの&Lを消すことで解決しました。
おかしいことに&Pはそのままでも"OK"なんです。

"値複写のほうもシステムキーイベントにしろ!!"
というお叱りなのでしょうか。
ウ・・ ウン(・_・;)なんだかな〜

19677 Re:フォームでのアクセスキーとシステムキーダウンイベント 今村 誠 2003/03/29-18:01
記事番号19676へのコメント
ケントさんこんちは、桐9sp1でテストしてみました。
オブジェクト名 c値複写
表題      &L)値複写
→ 機能   機能パラメータリスト
1 訂正
2 値複写
3 表示   確定する
文字列でも数値でもエラーはありません。
アクセスキーも動作しました。

しかし、表引き設定をした項目のテキストで実行すると
値複写の窓の上に表引きウィンドウが表示されて、
表引きをキャンセルし値複写を選ぶと、桐が終了されました。
win2000です。

同じコマンドボタンを桐8sp7にコピーして実行すると。
正常な動作をします。
桐8sp7安定感がありますね。
19727 Re:フォームでのアクセスキーとシステムキーダウンイベント ケント 2003/04/04-15:35
記事番号19677へのコメント
今村 誠さん こんにちは
身内で不幸が有り返事が遅くなりました。あしからず。

>ケントさんこんちは、桐9sp1でテストしてみました。
>オブジェクト名 c値複写
>表題      &L)値複写
>→ 機能   機能パラメータリスト
>1 訂正
>2 値複写
>3 表示   確定する
>文字列でも数値でもエラーはありません。
>アクセスキーも動作しました。

値複写のほうは

→ 機能 機能パラメータリスト
1 値複写

のみでテキストボックスが表示状態でも編集状態でも機能します。

直前値のほうが

→ 機能 機能パラメータリスト
1 直前値

だけでは表示状態で機能しないので前出のコメントとなりました。
でも機能名の選択フォームで
【説明】テキストボックスが編集状態のときに直前値を貼り込む。
とあるので仕様なのでしょう。

今村さんご指摘のように
→ 機能   機能パラメータリスト
1 訂正
2 直前値
3 表示   確定する
とすることで問題は解決されました。ありがとうございます。
これでシステムキーダウンのイベントは不要となりました。

アクセスキーとシステムキーダウンがオーバーラップしたときの
挙動不審の部分は時間がないので深く追求しない...ということで。

戻る