IVisual LANSA エディターでスライダー上のボタンを削除し、[ソース] タブに切り替えて次のコードを貼り付けます。
Define_Com Class(#Prim_phbn) Name(#IssueTestMessageButton) Parent(#CustomPanelBody) Caption('Issue Message via Command Handler') Displayposition(1) Tabposition(1) Width(239) Top(16) Left(424)
Define_Com Class(#Prim_edit) Name(#TestMessage) Parent(#CustomPanelBody) Displayposition(2) Tabposition(2) Width(407) Tabstop(False) Top(16) Placeholder('Type your message here')
[デザイン] タブを表示します。これでスライダーに編集ボックスが付き、メッセージを入力できます。この隣にあるボタンにより、スライダーからフレームワークにメッセージの信号が送信されます。
このボタンの Click イベント・ルーチンを作成し、これに次のSignalEvent ステートメントを追加します。
#Com_Owner.avSignalEvent Withid(ShowMessage) Notifyself(False) Sendainfo1(#TestMessage) To(FRAMEWORK)
スライダーをコンパイルします。
次に信号送信された ShowMessage イベントをリスンするコンポーネントを作成する必要があります。そのためには、まずコマンド・ハンドラーを開きます (SFRUD 例を利用している場合は、"詳細" コマンド・ハンドラー XXX_XHOMESALE_SCRUD_Handler)。
次のイベント・ルーチンをこのコマンド・ハンドラーに貼り付けます。
Evtroutine Handling(#Com_owner.avEvent) Withid(#EventId) Withainfo1(#AInfo1)
If (#EventId = ShowMessage)
#AVFRAMEWORKMANAGER.avIssueMessage Text(#AInfo1) Requester(#COM_OWNER) Clearexistingmessages(True)
Endif
Endroutine
このルーチンは ShowMessage イベントをリスンし、受信するとメッセージを発行します。
コマンド・ハンドラーをコンパイルします。
ワークベンチに切り替えて、フレームワークを実行してこの信号送信をテストします。
まず、自身のビジネス・オブジェクト内のビジネス・オブジェクト・インスタンス用の場合コマンド・ハンドラーを表示させます。次に下部スライダーを表示し、編集ボックスにメッセージを入力したら [コマンド・ハンドラー経由でメッセージ発行] のボタンをクリックします。
メッセージがコマンド・ハンドラーのステータス・バーに表示されます。
フレームワーク実行時にトレースをオンにすれば、このイベントがどのように信号を送り、受信されているか確認することもできるでしょう。これを行うには、[VLF-ONE アプリケーションとしてフレームワークを実行] のダイアログ内で [トレースをオンにする] のオプションを選択します。
この時、信号受信のテストを行う前に [トレースをクリア] をクリックして、事前にトレースをクリアしておくと良いでしょう。