New Scriptというコマンド関数はありません。代わりに、新しいスクリプトウィンドウを開く場合は、New Window()関数を使い、それがスクリプトウィンドウであることを知らせるメッセージを送ります。
ww = New Window( "Window Title", <<Script, "Initial Contents" );
前述のNew Windowの例では、wwはウィンドウ全体であるディスプレイボックスへの参照です。スクリプトウィンドウに書き込みを行うには、書き込み先であるディスプレイボックス部分への参照を取得する必要があります。これはscript boxと呼ばれます。
ed = ww[Script Box(1)];
このように取得した参照(この例では、ed)を使えば、テキストの追加、削除、取得ができます。
ed << Get Text();
ed << Set Text( "aaa=3;\!N" );
スクリプトウィンドウの最後にテキストを追加するには、Appendを使用します。
ed << Append Text( "bbb=1/10;" );
ed << Append Text( "\!Nccc=4/100;" );
ed << Get Line Text( 2 );
ed << Set Line Text( 2, "bbb = 0.1;" );
ed << Get Line Count();
ed << Get Lines();
スクリプトの体裁を読みやすく整えるには、Refromatメッセージを使用します。
ed << Reformat();
スクリプトウィンドウ内のスクリプト全体を実行するには、Runメッセージを用います。
ed << Run();
スクリプトを保存せずにスクリプトウィンドウを閉じるには、他のJMPウィンドウの場合と同じく、ウィンドウにClose Windowメッセージを送ります。
ww << Close Window( nosave );
ww = New Window( "Test", <<Script, "Open(\!"$SAMPLE_DATA\Big Class.jmp\!");");
ww << Save Text( "$TEMP/Test.jsl" );
Write( Load Text File( "$TEMP/Test.jsl" ) );
メモ: スクリプトがスクリプトウィンドウに読み込まれると、そのウィンドウは「dirty」(変更後保存されていないことを表す)であるとみなされます。このプロパティを削除するには <<Set Dirty(0)を使用します。このメッセージを送らない場合、ウィンドウを閉じるときに、スクリプトを保存するかどうかを確認するメッセージが表示されます。
ww = New Window( "Test", <<Script, "Open(\!"$SAMPLE_DATA\Big Class.jmp\!");");
ww << Save Text( "$TEMP/Test.jsl" );
ww << Close Window();