グラフボックスにテキストを追加するグラフボックスの作成時に以下のコードを使用すると、特定の座標に書式設定されたテキストを追加できます。
New Window( "Example",
Graph Box(
Text Size( 20 );
Text( {50, 20}, "label" );
)
);
ただし、グラフ ボックスを作成した後、後でテキストを追加する方法がわかりません。 たとえば、実際に for ループで複数の書式設定されたテキスト項目をグラフ ボックスに追加しようとしています。
「グラフボックス」の「内フレームボックス」を特定してそこにテキストを追加しようとしましたが、フレームボックスは「テキスト」メッセージを認識しません。最終的には、特定の座標に複数の書式設定されたテキスト項目を追加できるようにしたいと考えています。
Names Default To Here( 1 );
New Window( "Example", a = Graph Box() );
frame = a[FrameBox( 1 )];
frame << Text Color( "red" );
frame << Text( Center Justified, {50, 20}, "centered" );
どうすればこれを達成できますか?
乾杯、トロイ
マスカスタマイゼーションRe: グラフボックスにテキストを追加するどちらのソリューションも機能しますが、当初の要件に近いため、最終的には ErraticAttach メソッドを選択しました。
お二人ともご返答ありがとうございました。
Re: グラフボックスにテキストを追加する決勝がどうなるか注目してくださいのり()での声明グラフボックス() function は、ヘルプ索引 (以下を参照) に示されているスクリプトです。事後的にグラフ ボックスにスクリプトを追加するには、 <<グラフィックススクリプトの追加以下のような方法です。を置くことができますのり()ここでも私がやったように機能します。
Names Default To Here( 1 );
New Window( "Example", a = Graph Box() );
frame = a[FrameBox( 1 )];
frame << Add Graphics Script( Text Color( "red" ); Text( Center Justified, {50, 20}, "centered" ) );

Re: グラフボックスにテキストを追加するさすがクレイジー。
私は通常、すべての GUI アイテムを前もって作成し、後からアプリケーションの「ロジック」部分でそれらのアイテムにメッセージを送信します。 もちろん、作成時にメインループをグラフボックスに移動するだけです。 それはかなりうまくいくと思います。
これら 2 つのアプローチを試して、うまくいくか見てみましょう。
情報をありがとう。
ちなみに、私は純粋にイメージ(この場合はダイパーティションマップ)を作成するためにグラフボックスを使用しています。分析に二変量またはグラフビルダープラットフォームを使用する場合のように、これに関連付けられた「データ」はありません。
Re: グラフボックスにテキストを追加する目標によっては、データ テーブルと既存のプラットフォームを使用して、ポイントに別の列のラベルを付けるだけで済む場合があります。 列属性の 1 つは「マーカーに使用」です。
UseForMarker circled in red.UseForMarker circled in red.赤丸で囲まれたUseForMarker。
ただし、説明したことを実行するには、グラフィックス スクリプトに、ある種のコンテナからラベル (および色とマーカー データ) を取得するループが必要です。 コンテナーは、リスト、データ テーブル、または連想配列にすることができます。 コンテナにラベルを追加すると、<
list = {{"aaa", 10, 10, "red"}};
New Window( "Example",
gb=Graph Box(
For( i = 1, i <= N Items( list ), i += 1,
thisLabel = list[i];
Text Color( thisLabel[4] );
Text( Center Justified, {thisLabel[2], thisLabel[3]}, thisLabel[1] );
)
)
);
wait(1);
list[2] = {"bbb",20,20,"blue"};
gb<<INVAL></INVAL>
Three seconds later...Three seconds later...3秒後…