技術資料 textwindow.html @ htp://www2.toyo.ac.jp/~asahi/research/simulation/
08.09.12 1st upload, 09.08.28 "0削除"

テキストウインドウでデータを表示する

 ここでは,新しいtextウインドウを開いて,そこにデータを表示する方法を述べます.
しかし,
もともとDialogウインドウに文字を表示することができていたし,
(まだ理解していないせいかも知れませんが)textウインドウの使い勝手はよくないので,
今の所,スプレッドシートによるデータ表示の方法を推奨します.

【書式】
[1] wopen(Wp,Wtype)「ウインドウを作成する」Wp:ウインドウ番号,Wtype:ウインドウタイプ
[2] getWp(Wname,Wp)「ウインドウ番号を取得する」Wname:ウインドウ名称,Wp:ウインドウ番号

【使用例】
[1] wopen(Wp,"text")
 textという名前(固定)の”text"型ウインドウを開き,ウインドウ番号を自動的に割り振って変数Wpに代入する.
[2] getWp("myWindow",Wp)
 myWindowという名前のウインドウを探し,そのウインドウ番号を変数Wpに代入する.存在しないときは0をWpに代入する.

【モデル例】
//testtextw.set
preprocess() <-> 
	getWp("text",Wp),
	(Wp>0)->(Wp1:=Wp) otherwise (wopen(Wp1,"text")),
	Wp.g:=Wp1;

inputsequence()=As <-> As:=[1,2,3,4];
initialstate()=c <-> c:=[0];
delta(c,a)=cc <-> 
	cc:=append(c,[a]),
	xwriteln(Wp.g,"c=", c);


【動作】
初期状態(initialstate)の設定のとき,
 すでにtextという名称のウインドウがあれば,それを使います.
 なければtextという名称のウインドウを作ります(wopen).
 ウインドウ番号はグローバル変数(Wp.g)に代入しておきます.
書き込みは述語xwritelnを使いました.

【注意】
テキストウインドウをリフレッシュする述語と
テキストウインドウに空行(改行のみ)を表示する述語
が見つけられませんでした.
リフレッシュしたい場合,便宜的に,
私はウインドウの行数だけxwriteln(Wp.g,"")を実行しています.