桐の釣魚大全のトップ > 新 フォームアプリケーション入門 §2
トップページに戻る

鋭意校正中です。
念のためにブラウザでF5キーを押してリロードしてからお読みください。

新 フォームアプリケーション入門 §2 ― 桐のイベント処理の入門講座

 ―はじめに

 "フォームアプリケーション"とは2000年当時の著者(ONnoji)の造語です。
桐ver.8 以降の桐でフォーム(.wfm/.wfx)とイベント処理(.kev/.kex)を組み合わせてアプリケーションを作成する手法を
"フォームアプリケーション"と呼ぶことにします。
これに対して一括処理(.cmd/.cmx)でアプリケーションを作成する手法を"一括アプリケーション"と呼ぶことにします。

 本編は"フォームアプリケーション"を理解していただくための入門編です。
旧入門編は2000年から2001年に「桐のイベント道場」で連載しましたが、ジオシティーズのサービス終了に伴い2019年3月に公開終了しました。

 この度、桐10sを元に旧作をリニューアルした内容で「新 フォームアプリケーション入門 §2」をお届けいたします。 2021年7月 著者しるす

 §2 三角形の面積を求めるパート2

 これから作成する"三角形の面積を求める"フォームアプリケーションは実用的ではありませんが、フォームアプリケーションの基本が必ず習得できるはずです。
どうぞご自分の桐10sでお試しください。

   〈ヒントとコツ〉
    このコンテンツはフォームアプリケーションの独習書です。
    学習する際には、単に一読するよりも実際に桐10sを操作してフォームを完成する事を強くお勧めします。
    所要時間は約30分〜約1時間です。
    慣れている人ならばもっと短時間でフォームを完成できます。


 <ご注意ください>
 すべての説明は、桐sでは[リボンを使用しない]で利用する場合に該当します。


 前回の[§1 三角形の面積を求める]において、次の内容を学習しました。

 【内容】          【目次 §1 三角形の面積を求める】
 フォームの作成     ⇒ ・フォーム(.wfx)を作成する
 イベントファイルの作成 ⇒ ・イベント処理(.kex)を作成する
 開始時の自動実行    ⇒ ・[開始時実行コマンド]ボタンを作成する
 イベントハンドラの作成 ⇒ ・テキストボックスの[ソース値更新]イベントをオンにして[手続き]を作成する
 一般手続きの作成    ⇒ ・[コマンドボタン]とコマンドボタンから実行する[一般手続き]を作成する
 メソッドの簡単な例   ⇒ ・[フォーカス設定]メソッドを追加する

 今回の[§2 三角形の面積を求めるパート2]では、

 ・再定義中のフォームに新しい名前を付けて保存する
 ・再定義中のイベント処理ファイルに新しい名前を付けて書き出す
 ・フォームファイル(.wfx)とイベント処理ファイル(.kex)を関連付ける
 ・テキストボックス内の文字を選択状態にする
 ・テキストボックスの文字色を編集属性式で設定する

 という内容を学習します。

 目次

 《複製の作り方1/3》 再定義中のフォームに新しい名前を付けて保存する
 《複製の作り方2/3》 再定義中のイベント処理ファイルに新しい名前を付けて書き出す
 《複製の作り方3/3》 フォームファイル(.wfx)とイベント処理ファイル(.kex)を関連付ける
 テキストボックス内の文字を選択状態にする
 テキストボックスの文字色を編集属性式で設定する
 <付録>
 オブジェクトのリスト
 オブジェクト:コマンドボタンとテキストボックスの編集属性式
 [名札  メイン]と[手続き]

 ―《複製の作り方1/3》 再定義中のフォームに新しい名前を付けて保存する

 1.[ファイル]メニュー → [開く]を選び、[開く]ダイアログで、§1で作成した "三角形の面積を求める.wfx" を開きます。

 2.[表示]メニュー → [再定義]を選び "三角形の面積を求める.wfx" のフォームの再定義ウィンドウにします。

 3.[ファイル]メニュー → [名前を付けて保存]を選び、
   [名前を付けて保存]ダイアログの[ファイル名]で "三角形の面積を求めるパート2" と入力して[保存]ボタンを実行します。

   

 4.フォームの再定義ウィンドウのタイトルバーに表示されるファイル名が "三角形の面積を求めるパート2" に変更されていることを確認してください。

   〈ヒントとコツ〉
    既存のフォームをファイルコピーしてフォームを作るよりも、
    フォームの再定義ウィンドウで、[ファイル]メニュー → [名前を付けて保存]で新しいフォームを作る方が、
    そのまま作業が続行できるので能率的であり、なおかつ簡単です。

 ―《複製の作り方2/3》 再定義中のイベント処理ファイルに新しい名前を付けて書き出す

 1.フォームの再定義ウィンドウをフォーカスしたまま、[書式]メニュー → [イベントの定義]を選びます。

   

 2.[三角形の面積を求める.kex]ウィンドウが現れたことを確かめてください。

 3.[ファイル]メニュー → [書き出し] → [一括]を選び、[書き出し:一括・イベント処理ファイル]ダイアログを表示します。

   

 4.[書き出し:一括・イベント処理ファイル]ダイアログの[ファイルの種類]の[∨]で "イベント処理" を選びます。

  

 5.[書き出し:一括・イベント処理ファイル]ダイアログの[ファイル名]で "三角形の面積を求めるパート2" と入力して[開く]ボタンを実行します。

   〈ヒントとコツ〉
    イベント処理ファイルを書き出す先のファイル名(.kex)は、新しい名前を付けて保存したフォーム(.wfx)と同名にします。
    こうすると後々の管理が楽になります。

   〈ヒントとコツ〉
    イベント処理ファイルを書き出す先のフォルダは、フォーム(.wfx)と同じ場所にします。
    こうすると後々の管理が楽になります。

   〈ヒントとコツ〉
   [三角形の面積を求めるパート2.WFX]は、NULLフォームなのでフォームの編集対象表がありません。
    しかし、フォームの編集対象表がある場合には、フォーム(.wfx)とイベント処理(.kex)は編集対象表と同じフォルダに作成します。
    こうすると後々の管理が楽になります。

   

 ―《複製の作り方3/3》 フォームファイル(.wfx)とイベント処理ファイル(.kex)を関連付ける

 1.[ウィンドウ]メニューで"三角形の面積を求めるパート2.WFX"を選び、フォームの再定義ウィンドウをフォーカスします。

   

 2.[オブジェクトの属性]ウィンドウが[三角形の面積を求めるパート2.WFX]の前面に表示されていることを確かめてください。

   〈ヒントとコツ〉
   [オブジェクトの属性]ウィンドウが現れていない場合には[書式]メニュー → [オブジェクトの属性] を選択して[オブジェクトの属性]ウィンドウを表示します。
    桐9sまでの桐では、[オブジェクトの属性]ウィンドウのコントロールメニューの下付近にあるピンク色の画鋲をクリックして画鋲を立てた状態にします。
    こうすると定義中のフォームにフォーカスがある間[オブジェクトの属性]ウィンドウが常に表示されるようになります。

 3.次にフォームの外(つまり[ワークスペース])をクリックしてください。
  [オブジェクトの属性]ウィンドウのタイトルバーには"フォーム"と表示されているはずです。

 4.[オブジェクトの属性]ウィンドウの[イベント]タブをクリックしてください。

   〈ヒントとコツ〉
   [イベント]タブが見つからない場合には、次のように設定してください。
   [書式]メニュー → [定義画面の設定]を選び、[詳細プロパティを使用する]のチェックをオンにします。
    さらに、桐9-2012/桐9sの場合には、[操作ナビを消去する]のチェックをオンにします

 5.[イベント]タブの[イベントファイル名]の[ファイル参照]ボタンをクリックしてください。

   

 6.[イベント処理ファイルの選択]ダイアログで "三角形の面積を求めるパート2.kex" を選び、[OK]ボタンを実行します。

   

 7.[イベント]タブの[イベントファイル名]の欄に "三角形の面積を求めるパート2.kex" が表示されていることを確認します。

   

 以上までの操作で、

 a.フォームファイル:三角形の面積を求めるパート2.wfx の作成
 b.イベント処理ファイル:三角形の面積を求めるパート2.kex の作成
 c.フォームファイルとイベント処理ファイルの関連付け

 が完了しました。

 8.[三角形の面積を求めるパート2.WFX]ウィンドウへフォーカスを切り替えて[表示]メニュー → [編集へ]を選びます。

 9.[三角形の面積を求めるパート2.WFXは更新されています.保存しますか?]に対して[はい]ボタンをクリックします。

10.[三角形の面積を求めるパート2.WFX]ウィンドウが編集状態になることを確認してください。
   これで、三角形の面積を求める.wfx/.kexを元にして、三角形の面積を求めるパート2.wfx/.kexを新しく作ることが出来ました。

   

 ―テキストボックス内の文字を選択状態にする

  Windows では編集中のテキストボックス内の文字や数字、つまり値が選択状態になるインターフェースがよく見られます。
 そこでフォームアプリケーションでも同じインターフェースを再現しましょう。

  なお、[三角形の面積を求めるパート2.WFX]には、3個のテキストボックスがありますが、
 個々のテキストボックス毎にイベントハンドラを作成して、同じ処理を記述するのは煩雑であり冗長であるので、
 ファミリオブジェクトを新規作成して、3個のテキストボックスで共通のイベントハンドラを利用することにします。

 ■新しいファミリオブジェクトを作る

 1.[表示]メニュー → [再定義]を選び "三角形の面積を求めるパート2.WFX" のフォームの再定義ウィンドウにします。

 2.まず、フォームの外(つまり[ワークスペース])をクリックしてください。
  [オブジェクトの属性]ウィンドウのタイトルバーには"フォーム"と表示されているはずです。

   〈ヒントとコツ〉
    ファミリオブジェクトを新規作成する時には、選択状態の(ハンドルが表示されている)オブジェクトが無いようにします。
    そうする理由は、選択状態の(ハンドルが表示されている)オブジェクトがあると、そのオブジェクトが自動的にファミリに所属してしまうからです。

 3.[書式]メニュー → [ファミリパレット]を選び、[ファミリパレット]ウィンドウを表示します。

   

 4."< 新規作成 >"をクリックします。

 5.[ファミリ名]に "ファミリ_1" が表示されたことを確認します。

   

 6. "ファミリ_1" をクリックすると、キャレット(文字カーソル)が現れますので、[ファミリ名]を famTxt に変更します。

   

 7.[ファミリパレット]ウィンドウの[閉じる]ボタンを実行します。

 以上で、ファミリオブジェクト: famTxt が作成出来ました。

 ■任意のオブジェクトをファミリオブジェクトに所属させる

 1.まず、フォーム明細部の一番上のテキストボックスをクリックして選択状態(ハンドルが表示されている)にしてください。

 2.次に、フォーム明細部の二番めのテキストボックスを[Ctrl]キーを押しながらクリックして選択状態(ハンドルが表示されている)にしてください。

 3.さらに、フォーム明細部の三番めのテキストボックスを[Ctrl]キーを押しながらクリックして選択状態(ハンドルが表示されている)にしてください。

 4.三個のテキストボックスが選択状態(ハンドルが表示されている)になっていることを確認してください。

   

 5.この時[オブジェクトの属性]ウィンドウのタイトルバーには "三角形の面積を求めるパート2:複数のオブジェクト" と表示されているはずです。

 6.[オブジェクトの属性]ウィンドウの[イベント]タブを選びます。

   

 7.右下の[ファミリ名]の[∨]をクリックして、プルダウンリストの中から "famTxt" を選びます。

   

 8.複数のテキストボックスの選択状態(ハンドルが表示されている)を解除するために、フォームの外(つまり[ワークスペース])をクリックしてください。
  [オブジェクトの属性]ウィンドウのタイトルバーには"フォーム"と表示されているはずです。

 ■ファミリオブジェクトのイベントハンドラを作成する

 1.[書式]メニュー → [オブジェクトのリスト]を選び、[オブジェクトのリスト]ウィンドウを表示します。

 2.[オブジェクトのリスト]ウィンドウの[一覧]サイド(左面)のツリー(木構造)の[ファミリ]をダブルクリックします。

 3.[ファミリ]が展開されて、[famTxt]が表示されたことを確認します。

   

 4.[famTxt]をクリックして、[属性]サイド(右面)の[イベント]タブを選びます。

   〈ヒントとコツ〉
   [オブジェクトのリスト]ウィンドウには、[一覧]サイド(左面)と[属性]サイド(右面)があります。
    片方のサイド(面)しか見えない時には、サイド(面)を右クリックして右メニューの[一覧 属性 両方]で "両方" を選びます。
    左面と右面の境界の上にマウスポインタを位置付けると、ポインタの形状が変わりマウスドラッグで幅を変更できます。

   

 5.[イベント]タブの[編集開始]のチェックボックスをクリックして、チェック印を付けます。

   

 6.次にイベント名[編集開始]の[…]ボタンをクリックします。

 7.[三角形の面積を求めるパート2.kex]のイベント処理定義(ウィンドウ)が現れたことを確認して、
   [オブジェクトのリスト]ウィンドウを[×]をクリックして閉じます、

   

 8.イベント処理定義(ウィンドウ)に以下のコード、すなわちイベントハンドラが作成されたことを確認してください。

   手続き定義開始 famTxt::編集開始()

   手続き定義終了

   

 ■ファミリオブジェクトのイベントハンドラの内容を記述する

 1.イベント処理定義(ウィンドウ)のイベント定義のツールバーの[手続き編集]ボタンをクリックして[手続き編集モード]にします。

  〈ヒントとコツ〉
   ツールバーボタンは、手続きの表示単位を切り替えるときに使用します。
   ツールバー上の ドロップダウン リストボックスをクリックすると、イベント処理ファイルに保存されている手続きの一覧と、
   その手続きを使用するオブジェクト名の一覧が表示されます。
   ドロップダウン リストボックスでオブジェクト名とイベント名を選択すると、画面に表示する手続きを切り替えることができます。
   すべての手続きを表示しているときにドロップダウン リストボックスを使用すると、該当する手続きにジャンプできます。
   イベントハンドラ以外の一般手続きを追加する場合は、すべての手続きを表示してから作業します。
   一般手続きを追加しているとき、ドロップダウン リストボックスの一覧に、追加した手続きを表示させる場合は[手続き定義リストの作成]ボタンをクリックします。

   

 2.イベント処理定義(ウィンドウ)で "手続き定義開始 famTxt::編集開始()" と "手続き定義終了" の範囲内に実行する内容を記述します。
   次のコマンドを記述してください。

   変数宣言 自動,整数{ &文字数 }

   メソッド呼び出し 戻り値 = &文字数,&this.編集選択位置設定( 1 ,-1 )

   〈ヒントとコツ〉
    変数:&this は、フォーム( .wfx )にイベント処理ファイル( .kex )がセットされている時に自動的に用意される文字列型変数です。
    変数:&this のスコープ(範囲)は、局所変数と同じです。
    変数:&this には、イベントが発生したオブジェクト名が代入されています。

   〈ヒントとコツ〉
   [三角形の面積を求めるパート2.WFX]には、3個のテキストボックスがありますが、
    個々のテキストボックス毎に同じ処理内容のイベントハンドラを作成するのは冗長ですので、ファミリオブジェクトを作成して、
    3個のテキストボックスで共通のイベントハンドラを利用します。

   

   【ファミリを利用して共通のイベントハンドラを利用する例】

    テキストオブジェクト

    txt底辺 ──イベント─┐
           発生  │
               │ ファミリオブジェクト  共通イベントハンドラ
               │
    txt高さ ──イベント─┼─── famTxt ────→ 手続き定義開始 famTxt::編集開始()
           発生  │              * 処理
               │             手続き定義終了
               │
    txt面積 ──イベント─┘
           発生

   【オブジェクト毎に同じ処理内容のイベントハンドラを作るために冗長になる例 その1】

    テキストオブジェクト   イベントハンドラ

    txt底辺 ──イベント─→ 手続き定義開始 txt底辺::編集開始()
           発生     * 処理
                 手続き定義終了

    txt高さ ──イベント─→ 手続き定義開始 txt高さ::編集開始()
           発生     * 処理
                 手続き定義終了

    txt底辺 ──イベント─→ 手続き定義開始 txt底辺::編集開始()
           発生     * 処理
                 手続き定義終了

   【オブジェクト毎に同じ処理内容のイベントハンドラを作るために冗長になる例 その2】

    テキストオブジェクト   イベントハンドラ

    txt底辺 ──イベント─→ 手続き定義開始 txt底辺::編集開始()
           発生     手続き実行 prc一般手続き( ) ───┐
                 手続き定義終了            │
                                   │   ※共通一般手続き(サブルーチン)
    txt高さ ──イベント─→ 手続き定義開始 txt高さ::編集開始() │
           発生     手続き実行 prc一般手続き( ) ───┼─→ 手続き定義開始 prc一般手続き( )
                 手続き定義終了            │    * 処理
                                   │   手続き定義終了
    txt面積 ──イベント─→ 手続き定義開始 txt面積::編集開始() │
           発生     手続き実行 prc一般手続き( ) ───┘
                 手続き定義終了

 3.[三角形の面積を求めるパート2.WFX]ウィンドウにフォーカスを切り替えて[表示]メニュー → [編集へ]を選びます。

 4.[三角形の面積を求めるパート2.kevは更新されています.保存しますか?]に対して[はい]ボタンをクリックします。

 5.[三角形の面積を求めるパート2.WFXは更新されています.保存しますか?]に対して[はい]ボタンをクリックします。

 6.フォーム編集の状態になりましたが、今回でどこが変化したか気がつきましたか?。
   今回は [Tab]キーを押すなどしてフォーカスを編集中のテキストボックスへ移動した時に、値が選択状態になるようになりました。

   〈ヒントとコツ〉
   [編集開始]イベントは[表示モード]では発生しませんので、[表示モード]ではテキストボックスの値が選択状態にはなりません。

   

 ―テキストボックスの文字色を編集属性式で設定する

 ■[前景モード]と[指定色]を設定する

 1.[表示]メニュー → [再定義]を選び "三角形の面積を求めるパート2.WFX" のフォームの再定義ウィンドウにします。

 2.[オブジェクトの属性]ウィンドウが[三角形の面積を求めるパート2.WFX]の前面に表示されていることを確かめてください。

   〈ヒントとコツ〉
   [オブジェクトの属性]ウィンドウが現れていない場合には[書式]メニュー → [オブジェクトの属性] を選択して[オブジェクトの属性]ウィンドウを表示します。
    桐9sまでの桐では、[オブジェクトの属性]ウィンドウのコントロールメニューの下付近にあるピンク色の画鋲をクリックして画鋲を立てた状態にします。
    こうすると定義中のフォームにフォーカスがある間[オブジェクトの属性]ウィンドウが常に表示されるようになります。

 3.まず、フォーム明細部の一番上のテキストボックスをクリックして選択状態(ハンドルが表示されている)にしてください。

 4.次に、フォーム明細部の二番めのテキストボックスを[Ctrl]キーを押しながらクリックして選択状態(ハンドルが表示されている)にしてください。

 5.さらに、フォーム明細部の三番めのテキストボックスを[Ctrl]キーを押しながらクリックして選択状態(ハンドルが表示されている)にしてください。

 6.三個のテキストボックスが選択状態(ハンドルが表示されている)になっていることを確認してください。

   

 7.この時[オブジェクトの属性]ウィンドウのタイトルバーには "三角形の面積を求めるパート2:複数のオブジェクト" と表示されているはずです。

 8.[オブジェクトの属性]ウィンドウの[表示]タブを選びます。

   

 9.[編集属性式]の右側の[式入力]ボタンを実行します。

10.[式入力]ウィンドウの下の3個の一覧の左側の一覧で、[オブジェクト属性]を選びます。

   

11.次に真ん中の一覧で、[前景モード]を選び、次に右側の一覧で[指定色]を選びます。

   

12.最後に[式へ挿入]ボタンを実行します。

13.式エディタに 前景モード'指定色' という式が挿入されたことを確認します。

   

14.挿入した式の後ろにコンマ(, )を追加します。

   

15.同じ要領で、真ん中の一覧で、[前景色]を選び、次に右側の一覧で[赤]を選びます。

16.最後に[式へ挿入]ボタンを実行します。

17.式エディタに 前景色'赤' という式が追加されたことを確認します。

   

18.式の前後を二重引用符(" )で囲みます。

   

19.[OK]ボタンを実行します。

20.[三角形の面積を求めるパート2.WFX]ウィンドウにフォーカスを切り替えて[表示]メニュー → [編集へ]を選びます。

21.[三角形の面積を求めるパート2.WFXは更新されています.保存しますか?]に対して[はい]ボタンをクリックします。

22.フォーム編集の状態になりましたが、今回でどこが変化したか気がつきましたか?。
   今回はテキストボックスの値が赤色で表示されるようになりました。

   

 ■編集条件式に条件を指定する

 1.[表示]メニュー → [再定義]を選び "三角形の面積を求めるパート2.WFX" のフォームの再定義ウィンドウにします。

 2.[オブジェクトの属性]ウィンドウが[三角形の面積を求めるパート2.WFX]の前面に表示されていることを確かめてください。

 3.まず、フォームの外(つまり[ワークスペース])をクリックしてください。
  [オブジェクトの属性]ウィンドウのタイトルバーには"フォーム"と表示されているはずです。

 4.次に、フォーム明細部の一番上のテキストボックスをクリックして選択状態(ハンドルが表示されている)にしてください。

 5.[オブジェクトの属性]ウィンドウのタイトルバーには"txt底辺"と表示されているはずです。

 6.[オブジェクトの属性]ウィンドウの[表示]タブを選びます。

   

 7.[編集属性式]の右側の[式入力]ボタンを実行します。

 8.今回は、テキストボックスの値がゼロ以下の場合に式を反映させるために、#cond関数を使用します。

   少々式が長いですが間違えないように気を付けて次のように変更してください。

   #cond( &m底辺 < 0, "前景モード'指定色',前景色'赤'" )

   〈ヒントとコツ〉
    変数名は、下の3個の一覧の左側の一覧で[変数名]を選び、
    真ん中の一覧で[局所]を選んで式へ挿入することが出来ます。

   〈ヒントとコツ〉
    #cond関数は、#条件選択関数の別名です。

   

 9.[OK]ボタンを実行します。

10.同様に、フォーム明細部の二番めのテキストボックス:txt高さ の編集属性式を次のように変更します。

   #cond( &m高さ < 0, "前景モード'指定色',前景色'赤'" )

11.同様に、フォーム明細部の三番めのテキストボックス:txt面積 の編集属性式を次のように変更します。

   #cond( &m面積 < 0, "前景モード'指定色',前景色'赤'" )

12.[三角形の面積を求めるパート2.WFX]ウィンドウにフォーカスを切り替えて[表示]メニュー → [編集へ]を選びます。

13.[三角形の面積を求めるパート2.WFXは更新されています.保存しますか?]に対して[はい]ボタンをクリックします。

14.フォーム編集の状態になりましたが、今回でどこが変化したか気がつきましたか?。
   今回はテキストボックスの値が負(マイナス)の場合に赤色で表示されるようになりました。

   〈ヒントとコツ〉
    テキストボックスに不適切な値が入力された場合には、値の色を赤色にするのは非常に効果的です。
    このようにすると入力担当者(オペレータ)は誤りに気が付き易くなります。
    誤りに気が付いた入力担当者は直ちに直前のテキストボックスへ戻って値を修正することができます。
    一方、不適切な値に対してメッセージボックスを表示するデザインではその都度作業が中断されるので、
    入力担当者の作業テンポを維持できませんし、中断によって作業に没頭できないためにストレスが多くなります。
    エラーチェックはすべての入力が確定する最終段階で行えば良く、その時にメッセージボックスを表示すればよいのです。

   

 <付録>

 【オブジェクトのリスト】

 〈ヒントとコツ〉
  桐のフォームの場合の[オブジェクト]とは、フォームやUI部品や明細部セクションなどのことです。
  従って、単にモノや部品と理解してください。

 〈ヒントとコツ〉
  桐のイベント処理は、順次(順接)、if(分岐)、繰り返し(反復)の三つの制御構造によって処理の流れを記述する構造化プログラミング言語です。
  桐には、部品としてのオブジェクトの属性の[値]を変更・参照する[オブジェクト操作]コマンドと、
  部品としてのオブジェクトに予め組み込まれている[手続き]を実行する[メソッド実行]コマンドがありますが、
  決してOOP(オブジェクト指向プログラミング)言語ではありません。
  その証拠としては、
  「桐ヘルプのどこを探しても"オブジェクト指向プログラミング"や"クラス"というキーワードが見つからない」
  という事実を指摘するだけで十分でしょう。

 ■三角形の面積を求める.WFX

  フォーム
  │
  ├ ファミリ
  │ │
  │ └ famTxt
  │
  ├ ワークスペース
  │ │
  │ └ cmdStartup
  │
  ├ フォーム操作バー
  │
  └ フォーム明細部
    │
    ├ txt底辺
    │
    ├ txt高さ
    │
    ├ txt面積
    │
    ├ ラベル_4
    │
    ├ ラベル_5
    │
    ├ ラベル_6
    │
    ├ cmd閉じる
    │
    └ cmdクリア

 【オブジェクト:コマンドボタンとテキストボックスの編集属性式】

  オブジェクト名: cmdStartup
  標題     : cmdStartup

   機能名     機能パラメータリスト
  1 訂正
  2 なし
  3 なし
  4 なし

  オブジェクト名: cmd閉じる
  標題     : 閉じる(&X)

   機能名     機能パラメータリスト
  1 閉じる
  2 なし
  3 なし
  4 なし

  オブジェクト名: cmdクリア
  標題     : クリア

   機能名     機能パラメータリスト
  1 表示
  2 手続き実行   cmdクリアClick
  3 訂正
  4 なし

  オブジェクト名: txt底辺
  編集属性式    #cond( &m底辺 < 0, "前景モード'指定色',前景色'赤'" )

  オブジェクト名: txt高さ
  編集属性式    #cond( &m高さ < 0, "前景モード'指定色',前景色'赤'" )

  オブジェクト名: txt面積
  編集属性式    #cond( &m面積 < 0, "前景モード'指定色',前景色'赤'" )


 【[名札  メイン]と[手続き]】

 ■三角形の面積を求める.kex

 名札    メイン
  変数宣言 局所,数値{ &m底辺, &m高さ, &m面積 }

  &m底辺 = 0
  &m高さ = 0
  &m面積 = 0

 *

 手続き定義開始 txt底辺::ソース値更新()
  &m面積 = &m底辺 * &m高さ / 2
 手続き定義終了

 手続き定義開始 txt高さ::ソース値更新()
  &m面積 = &m底辺 * &m高さ / 2
 手続き定義終了

 手続き定義開始 cmdクリアClick( )

  &m底辺 = #未定義
  &m高さ = #未定義
  &m面積 = #未定義

  メソッド呼び出し @txt底辺.フォーカス設定( )

 手続き定義終了

 手続き定義開始 famTxt::編集開始()
  変数宣言 自動,整数{ &文字数 }

  メソッド呼び出し 戻り値 = &文字数,&this.編集選択位置設定( 1 ,-1 )

 手続き定義終了


トップページに戻る
桐の釣魚大全のトップ > 新 フォームアプリケーション入門 §2