MEL入門010 関数を使う。

ウインドウを作成し、テキストフィールドを作成します。


window -width 100 -height 70 -title "SELECTNAME";
columnLayout -adjustableColumn true;
text -label "Name"-align "center";
textField -editable true NAME;
button -command "SelNAME" -h 16 -label "SelNAME";
setParent..;
showWindow;


SelNAMEボタンを押すと SelNAMEを実行します。今は何もおきません。


textField -editable true NAME;
で NAME をテキストに表示します。今は何も表示しておりません。


コマンド名を作成しスクリプトをまとめて実行させるには 関数を使用します。
ここではコマンド名を SelNAME にします。


global proc SelNAME()
{
string $name= `ls -sl`;
textField -e -tx ($name[0]) NAME;
};


textField -e -tx ($name[0]) NAME;
で実行後、選択オブジェクトの名前を NAME に 入れます。


説明すると関数の書き方は


global proc プロシージャ名(スクリプトを実行するコマンド名);
{
スクリプト
};


です。

まとめて下記になります。


global proc SelNAME()
{
string $name= `ls -sl`;
textField -e -tx ($name[0]) NAME;
};
window -width 100 -height 70 -title "SELECTNAME";
columnLayout -adjustableColumn true;
text -label "Name"-align "center";
textField -editable true NAME;
button -command "SelNAME" -h 16 -label "SelNAME";
setParent..;
showWindow;


SelNAMEボタンを押すと選択したオブジェクト名がテキストフィールドに表示されます。


更に関数をもう一つ作ります。
テキストフィールドに入力した名前にリネームするスクリプトを実行します。コマンド名は ReNAME 


global proc ReNAME()
{
string $ReName = `textField -query -text NAME`;
rename $ReName;
};


`textField -query -text NAME`;
で実行後、入力したリネームする名前を NAME に 入れます。


リネームを実行する為のボタンを作成します。


button -command "ReNAME" -h 16 -label "ReNAME";
を追加します。


まとめて下記になります。


global proc SelNAME()
{
string $name[]= `ls -sl`;
textField -e -tx ($name[0]) NAME;
};


global proc ReNAME()
{
string $ReName = `textField -query -text NAME`;
rename $ReName;
};


window -width 100 -height 70 -title "SELECTNAME";
columnLayout -adjustableColumn true;
text -label "Name"-align "center";
textField -editable true NAME;
button -command "SelNAME" -h 16 -label "SelNAME";
button -command "ReNAME" -h 16 -label "ReNAME";
setParent..;
showWindow;