09-06-2011, 04:47 PM,
|
|||||
|
|||||
TextFlowBox内の文字列変更について
ひょっとしたらすごく簡単なことなのかもしれませんが・・・
TextFlowBoxの文字列を変更する必要があるとき TextFlowBox.clear 後 TextFlowBox.add を使うのが一般的でしょうか? clear を使用してしまうと、指定していたオプションまで消えてしまうのですが なにか方法はありませんでしょうか。 Code: {let tfb:TextFlowBox = {TextFlowBox |
|||||
09-07-2011, 09:23 AM,
(This post was last modified: 09-07-2011, 09:24 AM by ashimo.)
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
addの戻り値が追加されたオブジェクトだからだとすれば、
これならどうでしょう 。 Code: {let tfb:TextFlowBox = {TextFlowBox |
|||||
09-08-2011, 10:03 AM,
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
ashimo様
確かに正しく表示されました。 が、なぜなのかイマイチ納得ができておりません。 これでもうまくいきました。 Code: {let tfb:TextFlowBox = {TextFlowBox (09-07-2011, 09:23 AM)ashimo Wrote: addの戻り値が追加されたオブジェクトだからだとすれば、 Visual.addのHELPを参照すると、 Quote:目的: 子アイテムを Visual に追加します。 とありますが、addメソッドの戻りを受けとらないと(ashimo様のソースであればvalueマクロ?)、 適切な値に強制変換されちゃう過程(恐らくサブタイプでなく Visual) でオプションも消えちゃうよってことでしょうか??? |
|||||
09-08-2011, 01:21 PM,
(This post was last modified: 09-08-2011, 01:38 PM by Yuhki.)
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
(09-08-2011, 10:03 AM)onyo Wrote: 適切な値に強制変換されちゃう過程(恐らくサブタイプでなく Visual)私も最初実行してびっくりしましたが上記の理由ではないようです。 理由としてはオブジェクトの各インスタンスは、グラフィック階層において 1 度だけ生成されるためです。 (ヘルプ:グラフィカル ユーザー インターフェイス>グラフィカル オブジェクト>グラフィック階層>グラフィック階層のオブジェクトのインスタンス 参照) [addメソッドで返されるオブジェクト]=[tfbが内部でもつオブジェクト]=["ここまで\n→こっから"という文字列]であるため、 表示された際に、[addメソッドで返されるオブジェクト]として表示され、実はtfbは中身が表示されずに画面には (上記ソースの場合は文字列の横に)存在しています。 下記ソースで試すとわかりやすいかもしれません。 Code: {let tfb:TextFlowBox = {TextFlowBox |
|||||
09-08-2011, 01:53 PM,
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
Yuhki様
当方、ashimo様の回答を読み違えてたみたいです。 addの戻りを表示してしまっていたのが原因ってことだったのですね。。。 わかりやすい解説有難う御座いました! 因みに、Yuhki様の、サンプルコードは私が一番初めに なんでだーっ!とハマッていたのと全く同じやつです。 改めて見ると、なるほど、そういうことかと思いました。 |
|||||
09-08-2011, 06:20 PM,
(This post was last modified: 09-08-2011, 06:24 PM by onyo.)
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
実は元々悩んでいたのは、CommandButton の改行を含むテキストラベルを
動的に変えるにあたってどうすればいいのかでした。 CommandButton.label 内では text-preserve-whitespace? は有効ではないようですが 他に、簡潔な書き方がありますでしょうか? Code: {let hoge:String = "こっから→\nここまで"} |
|||||
09-08-2011, 07:01 PM,
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
(09-08-2011, 06:20 PM)onyo Wrote: CommandButton.label 内では text-preserve-whitespace? が効かないのではなくて、CommandButton ではデフォルトで text-breakable?=false だからです。 Code: {CommandButton |
|||||
09-08-2011, 07:10 PM,
|
|||||
|
|||||
RE: TextFlowBox内の文字列変更について
|
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
4 Guest(s)
4 Guest(s)