(現在 過去ログ57 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■8842 / inTopicNo.1)  コントロールキーボードの利用について
  
□投稿者/ とし -(2015/04/10(Fri) 15:43:21)
    教えてください。 最近イベント処理の勉強し始めました。
     数字を入力してEnterキィを押して登録処理をしていますが、Ctrlキィを押しても同じように登録処理をしたいと思っていますが、うまく動作しません。

    どのようにすれば良いでしょうか。教えていただけないでしょうか。

    Enterキィで下記イベントは動作します。

    手続き定義開始 t物品コード::ソース値更新(文字列 &編集文字列)
     if (&物品コード<>"")
      条件 (#表番号取得(&台帳,1)=#未定義) 表 &台帳
     編集表 #表番号取得(&台帳,1)
      検索 [物品コード]{=&物品コード},部分一致検索=しない,終了状態=&検索結果
      

    Ctrlキィを押しても下記イベントでは動作しません。

    手続き定義開始 フォーム::キーダウン( 長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止 )
     if ( &仮想キーコード = 17 .and &物品コード<>"")
      条件 (#表番号取得(&台帳,1)=#未定義) 表 &台帳
     編集表 #表番号取得(&台帳,1)

    よろしくお願いいたします。

    パソコン Xeon 3.2GHz 64ビット
     WINDOWS 8.1 PRO 4.0GB
      桐9s
    を使用しています。
引用返信 [メール受信/ON] 削除キー/
■8843 / inTopicNo.2)  Re[1]: コントロールキーボードの利用について
□投稿者/ オヨヨ -(2015/04/10(Fri) 16:55:03)
    としさんこんにちは

    ".and"??

    Ctrl+Alt+Delete…etc Ctrlキー残した方がいいのでは?
引用返信 [メール受信/OFF] 削除キー/
■8846 / inTopicNo.3)  Re[2]: コントロールキーボードの利用について
□投稿者/ とし -(2015/04/10(Fri) 17:23:01)
    早速返事ありがとうございます。

    Ctrl を使用するのは、IBMAS400を使っていた名残りがあるため使いたいのです。


    No8843に返信(オヨヨさんの記事)

    > としさんこんにちは
    >
    > ".and"??
    >
    > Ctrl+Alt+Delete…etc Ctrlキー残した方がいいのでは?
引用返信 [メール受信/OFF] 削除キー/
■8847 / inTopicNo.4)  Re[3]: コントロールキーボードの利用について
□投稿者/ うにん -(2015/04/10(Fri) 20:00:11)
    > Ctrl を使用するのは、IBMAS400を使っていた名残りがあるため使いたいのです。

    色んな物があるんですねえ。

    仮想キーコード表に
    >補助キー([Shift]、[Ctrl]、[Alt])との組み合わせ
    と書いてあるんで、この3つは他のキーを同時に押さないと発生しないのでは?
引用返信 [メール受信/OFF] 削除キー/
■8848 / inTopicNo.5)  Re[3]: コントロールキーボードの利用について
□投稿者/ オヨヨ -(2015/04/11(Sat) 07:22:08)
    ちょっと勘違いしていました。

    .andの後の条件は大丈夫なのでしょうか。

    if ( &仮想キーコード = 17 .and &ほにゃ<>"")
    で動作確認はできています。

引用返信 [メール受信/OFF] 削除キー/
■8850 / inTopicNo.6)  Re[1]: コントロールキーボードの利用について
□投稿者/ 桐始めました -(2015/04/11(Sat) 15:58:58)
    初めまして桐始めましたと申します。
    お探しのCtrl+○○というときの導入方法の質問が井戸端BBSにあったので転載します。

    http://www.habata.net/kiri/kbbs/kakov9/25877.htm

    あと、&物品コード<>""は&物品コード≠未定義と同じでしたっけ?
    前者はよくVBAで使いますが、桐で混在させると読みずらいと言われそうで私は未定義に統一しています。
引用返信 [メール受信/OFF] 削除キー/
■8851 / inTopicNo.7)  Re[1]: コントロールキーボードの利用について
□投稿者/ 今村 誠 -(2015/04/11(Sat) 16:24:05)
    としさんこんにちは
    >  if ( &仮想キーコード = 17 .and &物品コード<>"")
    アンド条件は複雑なのでifをサンプルのように分解して下さい。

    proc フォーム::キーダウン(Long &仮想キーコード\
    ,Long &スキャンコード,Long &フラグ,参照 Long &処理中止)
     var int{&mode},Str{&Smk,&focus,&SValue}
     method @フォーム.更新モード取得( &mode )
     if (&mode = 0 ) /* 表示中のキーダウンイベント */
     else /* 更新モード(訂正追加)のキーダウン */
      if (&フラグ=8) /* コントロールキーのフラグ */
       method @フォーム.GetFocusObject( &focus )
       if (&focus = "t物品コード") /* 設定したいobject */
        method @フォーム.更新モード設定( 0 )
        method &focus.GetSrcValue(&SValue,2)
        if (&SValue<>"") /* ↑上と下入替えで結果変わる */
         確認 &SValue
        else
         確認 &物品コード + "です"
        end
       end
      end
      メソッド呼び出し @フォーム.キー変換( 0 )
      &処理中止 = 0
     end
    end


引用返信 [メール受信/OFF] 削除キー/
■8855 / inTopicNo.8)  Re[2]: コントロールキーボードの利用について
□投稿者/ とし -(2015/04/13(Mon) 09:16:45)
    みなさん ご指導ありがとうございます。
    返事が遅くなり申し訳ありませんでした。 職場のコンピュータで処理しているためプログラムの修正確認ができませんでした。

    まず オヨヨ -さんが記載されておられる  .and &物品コード<>"" はなくても良いように思いますので、削除して試しましたが、だめでした。

    次に 桐始めましたさんに教えていただいた井戸端BBSで キーコードは 10進で8と記載してあったので、 if ( &仮想キーコード = 8) としましたがだめでした。

    最後に今村誠さんに教えていただいた分解してということでそのようにしましたが、動作しませんでした。(正しく修正したかわかりませんが)
    また 今村誠さんの訂正内容は、初心者の私には、難解でした。大変申し訳ありませんが、プログラムを修正してアップしますので、ご確認いただけないでしょうか。 少し時間をください。 よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■8856 / inTopicNo.9)  Re[3]: コントロールキーボードの利用について
□投稿者/ うにん -(2015/04/13(Mon) 11:18:32)
    > 次に 桐始めましたさんに教えていただいた井戸端BBSで キーコードは 10進で8と記載してあったので、 if ( &仮想キーコード = 8) としましたがだめでした。

    キーコードは17で、フラグが8ですね。

    単独でもイベントは発生してました。

    フォームに他に何もなければ、
    if ( &仮想キーコード = 17)
     call t物品コード::ソース値更新()
    end if
    でもいいかも?
    「(フォームで)ctrが押されたら(物品コードで)Enterと同じ処理を実行」なので、かなり乱暴ですが。確定させる処理は、別途入れないとだめかな。
    「イベントハンドラを、手続きとして実行したいときの書式です。イベントを発生させるものではありません」とあるので、イベントを発生させる機能があれば、それを呼び出せばいいのですが。
引用返信 [メール受信/OFF] 削除キー/
■8858 / inTopicNo.10)  Re[3]: コントロールキーボードの利用について
□投稿者/ 今村 誠 -(2015/04/13(Mon) 13:26:16)
    2015/04/15(Wed) 02:09:02 編集(投稿者)

    としさんこんにちは
    > 最後に今村誠さんに教えていただいた分解してということで
    > そのようにしましたが、動作しませんでした。
    どこまで動作したかをサンプルの確認コマンドでするのです。
    例えば訂正モードの直ぐ下で確認するとか
    フラグの直ぐ下で確認するとか
    focusがt物品コードにあったときに直ぐ下で確認するとか
    私のサンプルのように文字列をメソッドでソース値取得して
    その値を確認で表示するわけです。
    例文のようにt物品コードの値を表示状態にして&Svalueで
    確認している。
    あなたの使っている&物品コードがこちらでは何か不明なので
    対処できません。
    変数の型も不明ですし。
    どこで変数に代入しているかも不明です。
    テキストボックスに入力してあるからといってソース値取得では
    取り出せません。
    1)表示状態にしてから取り出すか
    2)編集文字列変更イベントで取り出す
    3)ソース値更新イベントで取り出す

    4)メソッド呼び出し 編集文字列取得()
    訂正中のみのメソッドで文字列を習得する
     ××4つ
    の3つしか取り出せないので手続きで3)を呼び出しても
    取り出せないのじゃないででしょうか。
    確実なのは1)にしてからサンプルのようにソース値取得
    後に他の表を開いて色々してから元のように訂正モードに
    変更するのが手順だと思います。
    ヘルプを検索するのが面倒ならここでなく業者に依頼する
    のが解決の早道です。

    テキストボックス1個と 表 &台帳
    を用意すれば簡単にサンプルは作れますよね、
    知りたいところだけ抜き出しても不明な変数では答えようがありません。

引用返信 [メール受信/OFF] 削除キー/
■8859 / inTopicNo.11)  [ソース値更新]イベント
□投稿者/ ONnoji -(2015/04/13(Mon) 14:30:44)
    >数字を入力してEnterキィを押して登録処理をしていますが、
    >Ctrlキィを押しても同じように登録処理をしたいと思っていますが、うまく動作しません。
    >
    > Enterキィで下記イベントは動作します。
    >
    > 手続き定義開始 t物品コード::ソース値更新(文字列 &編集文字列)
    >  if (&物品コード<>"")
    >   条件 (#表番号取得(&台帳,1)=#未定義) 表 &台帳
    >  編集表 #表番号取得(&台帳,1)
    >   検索 [物品コード]{=&物品コード},部分一致検索=しない,終了状態=&検索結果
    >   

    横レス失礼します。

    [ソース値更新]イベントを[Enter]キーを押した時に発生するイベントだと考えるのは誤りですよ。

    [Enter]キーの代わりに[F4]キーで表示モードに遷移した場合や

    [Tab]キーでフォーカスを移動する場合にも発生します。

    だから、[Enter]キーを押した時に発生するイベントだと考えるのは誤りなんです。

    ちなみに、[Esc]キーを押した時には[ソース値更新]イベントは発生しない。←これも重要。


    【引用】桐ver9-2009a 一括処理ヘルプより

    [ソース値更新]イベント
    --------------------------------------------------------------------------------
    更新モードの変更 ○可能
    フォーカスの変更 ○可能
    定義可能オブジェクト グループ項目|グループボックス|テキスト|トグルボタン|ファミリ

    ■イベントの発生
    [ソース値更新]イベントは、ソースの値が会話処理で更新されたときに発生するイベントです。
    [入力後]イベントは、このイベントの前に発生します。

    ■使用目的
    つぎにフォーカスさせるオブジェクトを指定します。
    フォームの更新モードを変更します。


引用返信 [メール受信/OFF] 削除キー/
■8860 / inTopicNo.12)  Re[2]: [ソース値更新]イベント
□投稿者/ とし -(2015/04/13(Mon) 14:50:39)
    色々教えていただきありがとうどざいます。

    口では十分な説明ができないので、入力部分だけをセレクトしてファイルをアップします。

    よろしくお願いいたします。

1428904239.lzh
/98KB
引用返信 [メール受信/OFF] 削除キー/
■8861 / inTopicNo.13)  Re[3]: [ソース値更新]イベント
□投稿者/ ONnoji -(2015/04/13(Mon) 17:16:14)
    2015/04/14(Tue) 11:24:13 編集(投稿者)
    2015/04/13(Mon) 19:52:51 編集(投稿者)
    2015/04/13(Mon) 19:51:50 編集(投稿者)
    2015/04/13(Mon) 19:48:55 編集(投稿者)

    > 口では十分な説明ができないので、入力部分だけをセレクトしてファイルをアップします。

    添付の 1428912974.lzh を解凍してください。

    debug物品登録.wfm
    debug物品登録.kev
    VK_library.cmd

    debug物品登録.wfm を実行してください。


    なお、キーダウンイベントをゴリゴリ書くと if else end が極めて多くなり収拾が付かなくなるので、
    拙作のライブラリーを使用しました。

    ライブラリーは【多遊】さんのダウンロードコーナーからダウンロードできます。

    http://tayu.o0o0.jp/download/

    拙作は #166 です。


    ** 詳しくは 桐のイベント道場 コラム11 VK_library 第1.0版 for 桐ver.8 / 桐ver.9
    ** http://www.geocities.jp/siliconvalley_bay_7565/vk_library/vk_library_framepage.htm
    ** を参照してください。
    **
    **■記述例
    **
    ** 手続き実行 VKprcKeySet( "→", 1, "*", "手続き実行 prcなんとか( )" )
    ** 手続き実行 VKprcKeySet( "→", 1, "0,2,4,6,8,33,34,36", "手続き実行 prcなんとか( )" )
    ** 手続き実行 VKprcKeySet( "→", 1, "表示,訂正,行挿入,行追加,項目訂正,グループ検索,グループ値訂正,グループ追加", "手続き実行 prcなんとか( )" )
    **
    **■構文
    **
    **  手続き実行 VKprcKeySet( キーの名前, 処理中止の値, 適用更新モード, 実行するコマンド )


    <添付ファイルを差し替えました>

    prcTest( )の自動変数&source を &string に名称変更しました。

    手続き定義開始 prcTest( 文字列 &keyName )
     変数宣言 自動,文字列{ &icon, &title = "prcTest( )", &msg }
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,整数 { &return }

     メソッド呼び出し 戻り値 = &return, @t物品番号.編集文字列取得( &string )
     &物品番号 = #num( &string )

     &msg = "&keyName = " + &keyName
     &msg = &msg + "\n\nメソッド呼び出し 戻り値 = &return, @t物品番号.編集文字列取得( &string )"
     &msg = &msg + "\n\n&物品番号 = #num( &string )"
     &msg = &msg + "\n\n&string = " + &string
     &msg = &msg + "\n\n&物品番号 = " + #str( &物品番号 )
     &icon = "i"
     手続き実行 INFprcMsgPause( &icon, &title, &msg )

     ** 編集中の文字列:&string を &物品番号 に代入しました。
     ** あとはご自由に作ってください。

    手続き定義終了



1428912974.lzh
/31KB
引用返信 [メール受信/OFF] 削除キー/
■8864 / inTopicNo.14)  Re[3]: コントロールキーボードの利用について
□投稿者/ オヨヨ -(2015/04/14(Tue) 07:49:43)
    > まず オヨヨ -さんが記載されておられる  .and &物品コード<>"" はなくても良いように思いますので、削除して試しましたが、だめでした。

    フォームのイベントタブでキーダウンにチェックは入っていますか?

    > 次に 桐始めましたさんに教えていただいた井戸端BBSで キーコードは 10進で8と記載してあったので、 if ( &仮想キーコード = 8) としましたがだめでした。

    仮想キーコードは17で動作確認OKです。
引用返信 [メール受信/OFF] 削除キー/
■8866 / inTopicNo.15)  Re[4]: コントロールキーボードの利用について
□投稿者/ 今村 誠 -(2015/04/14(Tue) 13:49:09)
    2015/04/14(Tue) 15:43:05 編集(投稿者)

    オヨヨさんこんにちは
    > 仮想キーコードは17で動作確認OKです。
    この書き方だと「&フラグ」で判断するのは誤りに思えますが
    どうして&フラグでは都合悪いのですか?
    不勉強なので教えて欲しいです。

    オヨヨさん指摘のようにキーダウンにはチェックされてないし
    オブジェクト名もt物品コードでなくt物品番号でした。
    変数名も&物品コードでなく&物品番号がテキストソースとなっていた。
    手続き定義開始 t物品番号::ソース値更新(文字列 &編集文字列)
    が記載してあったが()の中がエラーにはならないがちょっと
    不自然だと思います。
    「t物品番号」を指定してオブジェクトの属性画面の
    □ソース値更新 のイベントタブで□をチェック(ν)して黒く反転した
    文字↑をダブりクリックすると下記のように桐が作成するはずです
    手続き定義開始 t物品番号::ソース値更新()
    手続き定義終了

    というわけでどれが本当か不明です。
引用返信 [メール受信/OFF] 削除キー/
■8867 / inTopicNo.16)  Re[4]: [ソース値更新]イベント
□投稿者/ とし -(2015/04/14(Tue) 14:12:39)
    ありがとうございました。

    理解はあまりできませんでしたが、動作するようになりました。

    やはり桐は、奥が深いですね。一括は、よく利用しますが、イベントは、初心者の私にとって、難解なところが多いです。

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■8872 / inTopicNo.17)  Re[5]: コントロールキーボードの利用について
□投稿者/ オヨヨ -(2015/04/14(Tue) 19:36:48)
    今村 誠さん こんにちは

    >>仮想キーコードは17で動作確認OKです。
    > この書き方だと「&フラグ」で判断するのは誤りに思えますが

    そういうつもりは毛頭ございません。
    としさんの#8842及び#8855コメントに対してのメッセージです。
    Ctrlキーのキーダウンイベントにおける&仮想キーコードを使用した
    条件文でしたので...

    もちろん、&フラグを使用しても結構だと思います。

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -