1つのアイコンで複数の処理を切り分けて起動する [OS]ALL
[リリース] 6.08, 6.09, 6.10
[キーワード] af, frame, icon, label, _set_label_, _set_icon_, _get_label_, method, call,notify
[質問]FRAMEエントリで、1つのアイコンで複数の処理を切り替えて起動できますか。 [回答]
可能です。アイコンのラベルは_SET_LABEL_メソッドで設定でき、_GET_LABEL_メソッドで取得できます。
したがって、アイコンをクリックするたびにラベルを変更すれば、1つのアイコンで複数の処理を切り替えて起動できます。 ■ 使用するメソッド
次のプログラム例は、1つのアイコンで2種類の処理を交互に起動します。 アイコンクラスのオブジェクト名はICONとします。なお、_SET_ICON_メソッドはアイコンの図柄を設定します。 length txt $ 8; INIT: call notify('icon','_set_label_','処理1'); return; /*必要に応じてMAIN、TERMの処理を追加*/ MAIN: return; TERM: return; ICON: call notify('icon','_get_label_',txt); if txt = '処理1' then do; /*処理1に対応したSCLステートメント*/ call notify('icon','_set_label_','処理2'); call notify('icon','_set_icon_',2); end; if txt = '処理2' then do; /*処理2に対応したSCLステートメント*/ call notify('icon','_set_label_', '処理1'); call notify('icon','_set_icon_',1); end; return; |