PPAとJavaScriptで試しましたが動作は問題ないようですね.
▼PPA
var
a, i : Integer;
begin
a := S_TraceOut( 'TEST of TraceOut' );
for i := 0 to 5 do
begin
a := a + S_TraceOut( IntToStr( a ) + ' Printed.' );
end;
end
▼JavaScript
var a, i;
a = Editor.TraceOut( 'TEST of TraceOut (JavaScript)' );
for( i = 0; i < 5; i++ ){
a += Editor.TraceOut( a + ' Printed.' );
}
-----
気付いたこと
*関数型なのでノーマルのマクロでは使えない
*PPAでは引数は文字列のみ.数値はIntToStrで変換が必要
*JavaScriptでは数値も引数に与えられる
*1行出力毎に自動的に復帰改行が入る
*返される文字数には復帰改行は含まれない
ノーマルのマクロでは固定文字列しか与えられずあんまり使用価値が無いので関数として定義することに特に問題はないでしょう.
でも,出力文字数を知りたいのはどのようなときでしょうか?