|
|
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;
|
|||||