私は、Manipulateの内部でうまく動作するprogressIndicatorを作った。ボタンをクリックすると、機能するfoo []が呼び出され、機能しているときに、progressIndicatorが関数の進行状況を動的に表示します。progressIndicator with Manipulate問題
しかし、私は、別のセルにそのコピーを作成するために操作表示のコピーを作成すると、最初の表示をクリックすると動作が停止し、コピーのprogressIndicatorが代わりに更新されます。
グローバルシンボルはありません。 progressIndicatorで使用される変数は、Manipulateの内部にあります。
これを解決する方法を知っている人はいますか?これは問題です。デモを作成する際には、少数の場所(少数のスナップショットを作成する)でノートブック内でマニピュレート自体のコピーを作成しなければならないため、グローバル変数を使用することはできません。
私は、問題を示すために、小さな例を作った:あなたは上記を実行した後、新しい空のセルに操作するディスプレイ自体をコピーする場合、
Manipulate[
x,
Grid[{
{Control[{{x, 0, "x="}, 0, 1, .1}], SpanFromLeft},
{Button[Text[Style["run", 11]], {y = 0; foo[]}, ImageSize -> 100,
Method -> "Queued"],
Button[Text[Style["clear", 11]], y = 0, ImageSize -> 100]},
{Dynamic[ProgressIndicator[y, {0, 1}, ImageSize -> 100]]},
{Dynamic[[email protected][{ Style[ y*100 , 11], Style["%", 11]}]]}
}, Spacings -> {0, .3}],
{{y, 0}, None},
TrackedSymbols :> {x}, (*does nothing, just for testing *)
SynchronousUpdating -> False,
SynchronousInitialization -> False,
Initialization :>
(
foo[] := Module[{i},
Do[Pause[.15]; y = i, {i, 0, 1, .1}] (*Pause[] to slow it down*)
]
)
]
、およびカウンタをリセットするには、クリアボタンを押すと、最初の操作でボタンをもう一度実行すると、2番目のコピーの進捗インジケータが更新されていることがわかります。
共有シンボルが必要ですが、どこに表示されているのかわかりません。任意の助け
感謝。
更新1
[OK]を、私はDynamicModule追加[[操作し、{symbolsNamesHereを} ...]]
これは、スナップショット、今ProgresssIndicator作品間の '共有' の問題を解決すべてのコピーでOKです。
ただし、デモCDFは処理されません。ここでは、スクリーンショット
psです。私はこのエラーを理解していないので、WRIに電子メールを送ってください。 DownValuesを使用しないでください。
回答ありがとうございますが、わかりません。既にManipulateはDynamicModule自体です。私は常に多くのデモで操作の初期化セクションに多くの機能を持っていて、決して問題はありませんでした。さらに、デモはDynamicModule []ではなく、Manipulate []で始める必要があります。あなたは、ManipulateについてDynamicModuleを作成せずにこれを解決する方法を知っていますか?あなたは何かが共有されているという点で正しいですが、それを解決する理由と方法。繰り返しますが、前回の「初期化」セクションには常に機能がありましたが、問題は発生しませんでした。ありがとう。 – Nasser
あなたの解決策は問題を解決しますが、私はそれを使うことができるかどうか分かりません。 WRIのデモプロジェクトで、これが問題ないかどうかを確認する必要があります。私はデモがマニピュレート[]から始める必要があるといつも理解していました。私はまだ初期化セクションの関数をすべて使用していたにもかかわらず、この問題が起きなかったのはなぜか非常に混乱しています。ありがとう! – Nasser
こんにちはWReach、私はうまくいきませんでした。私は、DynamicModule []をManipulateの周りに追加し、必要なシンボルをローカライズしました。その後、問題は局所的に解決されましたが、CDFに処理しようとしたとき(つまりノートブックをデモサイトにアップロードしたとき)、ソフトウェアはそれを拒否しました。スクリーンショットをご覧ください。私はWRIの誰かにこれについて尋ねる電子メールを送る。 – Nasser