Q10:p.25について質問がございます。テキストでは、コンポーネントを「選択データ」とするようになっています。しかし、その選択肢の中には「イベント対象データ」もあります。ここでは、何故、後者ではなく前者を選択しなければならないのでしょうか?また、ここでは、イベント番号1を設定しています。何故イベント番号1を設定しなければならないのでしょうか?
A10:
[ファイル選択]コンポーネントの「データ選択イベント」の「イベント内包データ」の種類ですが、厳密に考えると
「選択データ」:選択されたファイルの名前
「イベント対象データ」:選択されたファイルそのもの
となります。
[ファイル選択]に接続した右側[ファイル入力]コンポーネントの「ファイル名を指定して画像を読込む」を「取得方法:イベント内包」として行いたいので、「ファイル名を指定して・・・」のファイル名として「選択データ」を選んでいます。
(実際には「イベント対象データ」を選んでも実行できるようコンポーネント内部で設定されていますので、どちらを選んでもエラーとはなりません)
イベント番号「1」を設定する理由ですが、イベント番号の設定は、接続元のコンポーネントからイベントが発生する条件を通常より細かく見て、右側の接続を行うか行わないか分けるために使用します。
[ファイル選択]のコンポーネントは、ファイル選択の窓に表示される「開く」のボタンを押した時も「キャンセル」を押した時も、またはファイルを選択しないで窓を閉じてしまった時も、「データ選択イベント」が発生するようになっています。
このLesson12のアプリケーションでは、ファイル選択ダイアログでファイル名を選択し「開く」ボタンを押すと画像を読込み表示するという流れです。
もしイベント番号を設定しなかった場合は、「キャンセル」(=取り消し)ボタンを押した時に、どのファイル名も選択されていないのに、「データ選択イベント」に接続された「ファイル名を指定して画像を読込む」処理は行われるので、ファイル名が不明となりエラーが発生します。
そのエラーを回避するため、キャンセル時には「ファイル名を指定して画像を読込む」処理を行わないようイベント番号を設定しています。
イベント番号「1」番を設定すると、単数のファイル選択のダイアログで「開く」ボタン押下時のみ、右側の処理が行われます。