過去の桐井戸端BBS (桐ver.8) |
12123 | イベントがうまく動いてくれない | 梅干殿下 | 2001/07/04-13:50 |
こんにちは。キーダウンイベントについて教えてください。 キーダウンイベントで[Shift]+[Enter]の場合を 手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止) ケース開始 ケース(&仮想キーコード=13 .and &フラグ=4) ------処理------- としていますが、うまくいきません。 [Shift]+[Enter]キーダウンイベントの 正しい書き方を教えてください。 | |||
12133 | Re:[Shift]+[Enter]キーダウンイベント | ケント | 2001/07/04-17:03 |
記事番号12123へのコメント 私の場合は下記で正常に動いていますが…どうしてかな(?_?) ケース開始 ケース (#項目番号("")=3 .and &仮想キーコード=13 .and &フラグ=4) 手続き実行 前頁() &処理中止=1 >うまくいきません。 どういう動きをしますか。 | |||
12134 | Re:[Shift]+[Enter]キーダウンイベント | 悲しげ | 2001/07/04-17:18 |
記事番号12123へのコメント どもっ、梅干殿下さん ふつうはそれで「うまく行く」はずです。 ただ「××となるべきところが、そうはならないで○○となってしまう」 と云うような書き方をしないと、話は通じにくいと思います。 全く根拠のない(文字どおり根拠がない!)想像ですが、 &処理中止=1 を入れてないからじゃないかな? | |||
12146 | Re:[Shift]+[Enter]キーダウンイベント | 梅干殿下 | 2001/07/04-22:54 |
記事番号12123へのコメント 説明不足ですみません。 イベントで以下のように組んでいます. 手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止) メソッド呼び出し @フォーム.フォーカスオブジェクト取得(&フォーカス) ケース開始 ケース(&仮想キーコード=13 .and &フラグ=4) /*Shift+Enterキーダウン フォーカス移動*/ ケース開始 ケース(&フォーカス=t備考) メソッド呼び出し @b学校.フォーカス設定() ケース(&フォーカス=b学校) メソッド呼び出し 戻り値 = &結果,@b特別活動.フォーカス設定検査() 条件(&結果=1) メソッド呼び出し @b特別活動.フォーカス設定() 条件(&結果=1) ケース中止 メソッド呼び出し 戻り値 = &結果,@b普希.フォーカス設定検査() 条件(&結果=1) メソッド呼び出し @b普希.フォーカス設定() 条件(&結果=1) ケース中止 メソッド呼び出し 戻り値 = &結果,@b希望コース.フォーカス設定検査() 条件(&結果=1) メソッド呼び出し @b希望コース.フォーカス設定() 条件(&結果=1) ケース中止 条件(&結果=0) メソッド呼び出し @b現浪.フォーカス設定() ケース(&フォーカス=b普希) メソッド呼び出し @b希望コース.フォーカス設定() ケース(&フォーカス=b希望コース) メソッド呼び出し @b現浪.フォーカス設定() ケース(&フォーカス=b特別活動) メソッド呼び出し @b現浪.フォーカス設定() ケース(&フォーカス=b現浪) メソッド呼び出し @b性別.フォーカス設定() ケース(&フォーカス=b性別) メソッド呼び出し @tふりがな.フォーカス設定() ケース(&フォーカス=tふりがな) メソッド呼び出し @t名.フォーカス設定() ケース(&フォーカス=t名) メソッド呼び出し @t氏.フォーカス設定() ケース(&フォーカス=t氏) メソッド呼び出し @t受験番号.フォーカス設定() ケース終了 &処理中止=1 ケース終了 手続き定義終了 しかし、Shift+Enter を押しても何もおきません. | |||
12148 | Re:[Shift]+[Enter]キーダウンイベント | 悲しげ | 2001/07/04-23:41 |
記事番号12146へのコメント どもっ、梅干殿下さん、とりあえず 手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長・・・・・・ 確認 "キーダウンイベント発生" /*確認その1*/ メソッド呼び出し @フォーム.フォーカスオブジェクト取得(&フォーカス) ケース開始 ケース(&仮想キーコード=13 .and &フラグ=4) /*Shift+Enterキーダウン フォーカス移動*/ 確認 "[Shift]+[Enter]キーダウン"+&フォーカス /*確認その2*/ ケース開始 ケース(&フォーカス=t備考) ・・・・・・・ とやってみて、これらの「確認」が出るかどうか試してみて下さい。 出なければ、これらイベントが発生していないことになります。 まさかとは思いますが、フォームの方でキーダウンイベントにチェックが付いていないとか? もし、メイン&サブで使っているなら両方を調べてみて。 随所に「確認」コマンドを入れてみると、何処まで実行されているのかを確認することができます(メッセージボックスでも同じ)。 あるいは「トレース出力」を使ってみるとか。 | |||
12149 | できました | 梅干殿下 | 2001/07/04-23:42 |
記事番号12146へのコメント すみません。うまくできました。 原因はケースコマンドの書き方にあったようです。 具体的には ケース((&仮想キーコード=13 .and &フラグ<>4) .or &仮想キーコード=40 .or &仮想キーコード=39) ******処理******* ケース((&仮想キーコード=13 .and &フラグ=4) .or &仮想キーコード=37 .or &仮想キーコード=38) ******処理******* とすべきところを ケース(&仮想キーコード=13 .or &仮想キーコード=40 .or &仮想キーコード=39) ******処理******* ケース((&仮想キーコード=13 .and &フラグ=4) .or &仮想キーコード=37 .or &仮想キーコード=38) ******処理******* としていたためのようです。おさわがせしました。先生方ありがとうございました。 | |||
12150 | Re:できました | 悲しげ | 2001/07/04-23:56 |
記事番号12149へのコメント なるほど、 同じ間違うにしても > ケース((&仮想キーコード=13 .and &フラグ=4) .or &仮想キーコード=37 .or &仮想キーコード=38) > ******処理******* > ケース(&仮想キーコード=13 .or &仮想キーコード=40 .or &仮想キーコード=39) > ******処理******* の順番であれば(「ケ」コマンドは最初の方を優先評価するので) うまく動いたでしょうにね。(^^;) |