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

■1473 / 7階層)  「目からウロコの・・・パート2」を公開しました。
□投稿者/ ONnoji -(2024/06/24(Mon) 22:03:36)
    2024/06/25(Tue) 13:27:03 編集(投稿者)
    2024/06/25(Tue) 00:22:15 編集(投稿者)

    >>そうそう、時限式タイマーが出てきて驚いたことでしょう。
    >>非常にまれですが、「どうしても具合が悪い場合」に遭遇する事があるものです。
    >>その時には、プログラムの流れを終わらせて、時限式タイマーで続きを実行するというアプローチで解決することが多いです。
    >
    > この意味が分かる日が来るまで頑張ります(^^ゞ
    > 本当に本当に素人が感じた感想です。
    >
    > オブジェクト操作 @フォーム{ タイマー1 = 1, タイマー値1 = 20 }
    >  ↓
    > 手続き定義終了
    >
    > タイマー1 でプログラムの流れを 中断 させた後 手続き定義終了 になっているので
    > 手続き定義全体では1つの流れになっていると思います。

    ご明察です!、その通りですよ。(^^ok

    以下の・・・

      cmd行追加Click( )

      オブジェクト操作 @フォーム{ タイマー1 = 1, タイマー値1 = 20 }

     フォーム::タイマー1()

      オブジェクト操作 @フォーム{ タイマー1 = 0 } /* 時限タイマーの[タイマー1]イベントを停止 */
      手続き実行 prcサブフォームへフォーカスを移動( )

    を図解すると↓次のようになります。

      一般プロシージャ                      イベントプロシージャ
      cmd行追加Click( )                     フォーム::タイマー1()
     ┌────────────────┐            ┌─────────────────────────┐
     │                │            │フォーム::タイマー1()               │
     │&objectName = "フォーム"    │            │                         │
     │&interval  = 10        │            │                         │
     │ :              │            │                         │
     │ :              │cmd行追加Click( )が終了 │オブジェクト操作 @フォーム            │
     │                │ した後のインターバル │{タイマー1 = 0 }                │
     │オブジェクト操作 @フォーム   │   ↓        │                         │
     │{タイマー1  = 1,       │├─────┤イベントが│ * コマンドまたはメソッド            │
     │ タイマー値1 = 20      } │  時間差   発生  │ 手続き実行 prcサブフォームへフォーカスを移動( )│
     │                │            │                         │
     │ :              │            │                         │
     │ :              │            │                         │
     │                │            │                         │
     └────────────────┘            └─────────────────────────┘
      ※[タイマーイベント]プロシージャの冒頭で、[イベント]属性をオフにする。つまり、[タイマー]イベントが発生しないようにする。

    この流れを見てみると・・・

       手続き定義開始 cmd行追加Click( )

        行追加  終了状態 = &status, [日付] = &m日付, [予定] = &m予定
        &m日付 = #u
        &m予定 = #u
        ** NG:手続き実行 prcサブフォームへフォーカスを移動( )
        **      ↓
        **  NGのために一旦タイマー1 を予約して、タイマー1 で実行するようにした
        **      ↓
        オブジェクト操作 @フォーム{ タイマー1 = 1, タイマー値1 = 20 }

       手続き定義終了

       手続き定義開始 フォーム::タイマー1()

        手続き実行 prcサブフォームへフォーカスを移動( )

       手続き定義終了


       手続き定義開始 prcサブフォームへフォーカスを移動( )

        メソッド呼び出し 戻り値 = &return, @subformAccept.@cmd訂正.実行()

       手続き定義終了

    という3個のプロシージャが関係していますね。(^^ゞ

      cmd行追加Click ※このプロシージャから呼び出す手続きはありませんが・・・、タイマーは予約されています
       ;
       ;
      予約したインターバルは、 20/100秒です
       ;
       ;
       20/100秒後にタイマー1 イベントが発生します!
       ;
       ;
       └ フォーム::タイマー1
         └ prcサブフォームへフォーカスを移動( )

    ↑上のように、

      cmd行追加Click() … インターバルで指定した秒数が経過するまで何もしない … タイマー1() → prcサブフォームへフォーカスを移動( )

    > 手続き定義全体では1つの流れになっていると思います。

    ということで、ご明察です。v(^^)v

    つまり、

      プロシージャA() … インターバルで指定した秒数が経過するまで何もしない … タイマー1() → プロシージャB()

    という風に覚えてください。

    タイマーに関しては拙作webページで解説していますので、ご参考にしてください。

    こちら
     ↓
    11 [タイマー1/2]イベントの動的セット|桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
    http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section11

    p.s.

    [タイマー]イベントは、[ピタゴラ装置]で[時間経過によって作動する仕掛け]と全く同じですねぇ〜。(^^ゞ

    やっぱり、[フォーム+イベント処理]を[ピタゴラ装置]に例えると分かり易いですね。アハハハha


    p.p.s.

    そもそもの話に戻せば・・・(^^ゞ

    以下は、手続き:cmd行追加Click( )内のコメント

     ** ここで prcサブフォームへフォーカスを移動( ) を実行するとサブフォームのフォーカスの移動が上手くいかない事がある
     ** サブフォームのコマンドボタン:cmd予定追加 をマウス左クリック以外で実行した場合には、 txt日付_入力用 にフォーカスが移動する :Good
     ** サブフォームのコマンドボタン:cmd予定追加 をマウス左クリックした時だけ、サブフォームのtxt日付_入力用 にフォーカスが移動しない:NG
     ** NG:手続き実行 prcサブフォームへフォーカスを移動( )
     ** 回避策として、時限タイマーの[タイマー1]イベントをインターバル 50/100秒で予約して、プログラムの流れを中断する

    ↑のコメント行のように、わざわざタイマーを使ったのは、

     txt日付_入力用 → txt予定_入力用 → cmd予定追加 の操作の流れの中で、

    コマンドボタン:cmd予定追加を、

    ・[Enter]キーを押す  ← main側で行追加後に、    cmd予定追加 から txt日付_入力用 にフォーカスが移動する
    ・マウス左クリックする ← NG:main側で行追加後に、 cmd予定追加 から txt日付_入力用 にフォーカスが移動しない ※フォーカスは cmd予定追加 にある

    というNGに対処するためですよ。

      スケジュール表_subform_accept.wfx

       フォーム
       ├ ファミリ
       ├ ワークスペース
       │ └ cmd訂正
       ├ フォームヘッダ部
       │ └ lbl説明
       └ フォーム明細部
         ├ txt日付_入力用
         ├ txt予定_入力用
         └ cmd予定追加

    とりあえず、タイマー経由で解決しましたので、それ以上の調査はしていません。

    今回のフォームは、メイン&サブフォーム形式という、あくまでも試作ですので・・・(^^ゞ

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

→Re[8]: 「目からウロコの・・・パート2.. /ジェダイの桐
 
前の記事(元になった記事) 次の記事(この記事の返信)
上記関連ツリー

Nomal 「目からウロコの・・・パート2」を公開.. / ONnoji (24/06/11(Tue) 16:31) #1445 1718091910.jpg/44KB
Nomal Re[1]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/14(Fri) 17:36) #1446
│└Nomal Re[2]: 「目からウロコの・・・パート2.. / ONnoji (24/06/15(Sat) 17:45) #1447
│  └Nomal Re[3]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/17(Mon) 12:06) #1448
│    └Nomal Re[4]: 「目からウロコの・・・パート2.. / ONnoji (24/06/17(Mon) 15:17) #1449
│      └Nomal Re[5]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/17(Mon) 16:22) #1450
│        └Nomal Re[6]: 「目からウロコの・・・パート2.. / ONnoji (24/06/17(Mon) 17:33) #1451 1718614704.jpg/36KB
│          └Nomal Re[7]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/18(Tue) 10:27) #1452
│            └Nomal Re[8]: 「目からウロコの・・・パート2.. / ONnoji (24/06/18(Tue) 11:00) #1453
│              └Nomal Re[9]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/18(Tue) 12:03) #1454
│                └Nomal Re[10]: 「目からウロコの・・・パート2.. / ONnoji (24/06/18(Tue) 15:54) #1455
│                  └Nomal Re[11]: 「目からウロコの・・・パート2.. / ONnoji (24/06/18(Tue) 16:48) #1456
│                    └Nomal Re[12]: 「目からウロコの・・・パート2.. / ONnoji (24/06/18(Tue) 17:05) #1457
│                      └Nomal Re[13]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/19(Wed) 10:53) #1458
│                        └Nomal Re[14]: 「目からウロコの・・・パート2.. / ONnoji (24/06/19(Wed) 11:28) #1459
Nomal Re[1]: 「目からウロコの・・・パート2.. / ONnoji (24/06/19(Wed) 15:42) #1460
│├Nomal Re[2]: 「目からウロコの・・・パート2.. / ONnoji (24/06/19(Wed) 16:04) #1461
│├Nomal Re[2]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/19(Wed) 17:02) #1462
│├Nomal Re[2]: 「目からウロコの・・・パート2.. / 尾形 (24/06/19(Wed) 18:06) #1463
││└Nomal Re[3]: 「目からウロコの・・・パート2.. / ONnoji (24/06/19(Wed) 19:11) #1464 1718792137.jpg/57KB
│└Nomal Re[2]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/20(Thu) 14:50) #1467
│  └Nomal Re[3]: 「目からウロコの・・・パート2.. / ONnoji (24/06/20(Thu) 16:14) #1468
│    └Nomal Re[4]: 「目からウロコの・・・パート2.. / ONnoji (24/06/21(Fri) 00:40) #1469
│      └Nomal Re[5]: 「目からウロコの・・・パート2.. / ONnoji (24/06/21(Fri) 09:27) #1470
│        └Nomal Re[6]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/06/21(Fri) 15:23) #1471
│          └Nomal 「目からウロコの・・・パート2」を公開.. / ONnoji (24/06/24(Mon) 22:03) #1473 ←Now
│            └Nomal Re[8]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/07/18(Thu) 16:12) #1484
│              └Nomal Re[9]: 多重化のメリット 時限式タイマ.. / ONnoji (24/07/18(Thu) 17:29) #1485
│                ├Nomal Re[10]: 多重化のメリット 時限式タイマ.. / ONnoji (24/07/18(Thu) 18:26) #1487
│                │└Nomal Re[11]: 多重化のメリット 時限式タイマ.. / ジェダイの桐 (24/07/19(Fri) 10:10) #1488
│                └Nomal Re[10]: 「目からウロコの・・・パート2.. / ジェダイの桐 (24/07/18(Thu) 18:24) #1486
│                  └Nomal Re[11]: 「多重化のメリット 時限式タイ.. / ONnoji (24/07/19(Fri) 12:59) #1489
Nomal Re[1]: 「目からウロコの・・・パート2.. / ONnoji (24/06/24(Mon) 19:35) #1472 1719227391.jpg/49KB

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/

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

- Child Tree -
- Antispam Version -