DynamicModule

DynamicModule[{x,y,},expr]

expr 中のDynamicオブジェクトの評価すべてにおいて,記号 x, y, の局所的なインスタンスを同じに保つオブジェクトを表す.DynamicModuleで指定された記号は,デフォルトで,Wolframシステムのセッション間でさえもその値を保持する.

DynamicModule[{x=x0,y=y0,},expr]

x, y, の初期値を指定する.

詳細とオプション

  • DynamicModuleModuleと同じように,まず expr 中の局所変数に一意的な名前を与える.続いて結果の式を評価し,このバージョンをDynamicModuleで包み込んで返す.
  • ノートブックでは,この返されたバージョンがしばしば出力セル中に表示される.Manipulateからの出力がこの例である.
  • 表示されているDynamicModuleの形式中でDynamicオブジェクトがインタラクティブに変更・編集された結果,局所変数の値が変化した場合,DynamicModuleオブジェクトはこれを反映するように修正される.
  • DynamicModule中の局所変数の値は,Wolframシステムのセッション間で実質的に持続されるように,DynamicModuleを含むノートブックが保存されると,デフォルトで自動的に保存される.
  • DynamicModuleオブジェクトを含むノートブックの一部をコピーすると,コピー中の局所変数は,同じ値から始まりはするが,もとの局所変数とは無関係になる.
  • 次のオプションを使うことができる.
  • BaseStyle {}表示オブジェクトのベーススタイル指定
    Deinitialization NoneDynamicModuleがもはや表示できなくなったときに評価される式
    DynamicModuleValues Automatic動的に更新した変数値のデータ
    ExcludedContexts AutomaticSaveDefinitionsから除外されるコンテキスト
    InheritScope FalseDynamicModule変数を他のDynamicModuleインスタンスに接続
    IncludedContexts AllSaveDefinitionsに考慮されるコンテキスト
    Initialization NoneDynamicModuleが最初に表示されたときに評価される式
    SaveDefinitions Falseexprに関連するすべての定義を保存するかどうか
    SynchronousInitialization True初期化を同期して行うかどうか
    UndoTrackedVariables None変更されるとフロントエンドの取り消しメカニズムで追跡される変数
    UnsavedVariables {}値を保存すべきではない変数
  • DynamicModuleがはじめて評価されると,評価の最中に局所変数の割当てがはじめて行われる.続いてInitializationオプションの設定は,それが何であれ,DynamicModuleの出力が表示されるときにのみ評価される.
  • DynamicModuleオブジェクトが特定のノートブックにはじめて表示されると,局所変数の保存された値が復元され,Initializationオプションが設定されていればそれが評価される.
  • UnsavedVariablesリストに含まれる変数を除き,局所変数のすべての値が保存される.記号の一般的な値はDynamicModuleの第1引数に保存される.その他の値はDynamicModuleValuesオプションの設定の中に保存される.
  • DynamicModuleは属性HoldAllを持つ.
  • DynamicModule構文はどのようにもネストすることができる.必要であれば内側の変数の名前が変更される.
  • DynamicModuleは,語彙スコーピングを実装するスコーピング構文である.

例題

すべて開くすべて閉じる

  (1)

動的に変更される局所変数を持つSliderを作成する:

この出力をコピー,ペーストしてスタンドアロンのオブジェクトを得る:

スコープ  (6)

DynamicModuleの変数  (3)

DynamicModuleを使って変数を局所化し,大域的な変数との衝突を防ぐ:

局所変数は生成された出力に関して一意的である:

Moduleのように,局所変数に初期値を割り当てる:

関数を局所変数として定義する:

DynamicModuleの状態  (3)

DynamicModuleを使って異なるWolframシステムセッション間で表示状態を保存する:

Moduleは現行のWolframシステムセッションに一意的な状態しか与えない:

Initializationを使ってコンテンツの表示前に式を評価する:

Initializationは局所変数の割当て後に評価される:

一般化と拡張  (1)

変数にダウン値を割り当てることで任意数の局所変数を定義する:

オプション  (16)

BaseStyle  (1)

ベーススタイルを設定する:

Deinitialization  (1)

出力が表示されなくなってから式を評価するように指定する:

DynamicModuleValues  (1)

局所的な記号の関数定義は自動的にDynamicModuleValuesに挿入される:

ExcludedContexts  (1)

デフォルトで,システムについて内部的な特定のコンテキストは初期化オプションには保存されない:

ExcludedContexts{}を使ってプロテクトされていないすべてのシンボルの定義を保存する:

InheritScope  (1)

DynamicModuleから変数を継承するDynamicModuleのあるダイアログボックスを作る:

Initialization  (4)

デフォルトで,外部定義はカーネルセッション間で失われる:

Initializationを使ってコンテンツに必要な評価を保存する:

局所変数も初期化することができる:

初期化は出力が表示されるときにのみ評価される:

最初のDynamicModuleはセミコロンで出力が出ないようにされているので,この割当てが実行されることは全くなかった:

IncludedContexts  (1)

シンボル定義の再帰的包含を"c1`""c2`"のコンテキストに限定する:

SaveDefinitions  (2)

デフォルトで,外部定義はカーネルセッション間で失われる:

SaveDefinitionsTrueに設定すると,外部定義が出力とともに保存されるようになる:

SynchronousInitialization  (2)

デフォルトで,初期化は出力が表示される前に(同期的に)評価される:

初期化が非同期的に評価されている間の出力表示を強制する:

UndoTrackedVariables  (1)

「取消し」メニューコマンドに反応するインターフェースを作る:

UnsavedVariables  (1)

状態が保存されるべきではない記号を指定する:

次を評価して2つのスライダーを動かし,次にCloseをクリックする:

次を評価する.2番目のスライダーが前の状態を記憶していないことに注意のこと:

アプリケーション  (3)

動的な計算インターフェースを構築する:

インタラクティブな曲線フィットプロット:

範囲がの角度スライダー:

スライダーを動的変数に結び付ける:

正弦関数関係を示す:

PolarPlotを使って螺線を示す:

特性と関係  (2)

DynamicModuleModuleは同じように見えるが根本的に異なる:

この場合,どちらのスライダーも動くが,再度開かれた場合は評価されない限りどちらも動かない:

Manipulateは出力作成でDynamicModuleに依存する:

考えられる問題  (1)

デフォルトで,"System`"シンボルの定義は取得されない:

ExcludedContexts{}を使ってすべてのコンテキストから定義を取得する:

自分のシンボルに定義を与えることもできる:

おもしろい例題  (2)

独立状態のスライダー:

枠で囲まれたエリアをクリックしてボールが跳ねるのを見る:

動的オブジェクトを入力に使う.別の枠内をクリックして追加のボールを作る:

Wolfram Research (2007), DynamicModule, Wolfram言語関数, https://reference.wolfram.com/language/ref/DynamicModule.html (2021年に更新).

テキスト

Wolfram Research (2007), DynamicModule, Wolfram言語関数, https://reference.wolfram.com/language/ref/DynamicModule.html (2021年に更新).

CMS

Wolfram Language. 2007. "DynamicModule." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/DynamicModule.html.

APA

Wolfram Language. (2007). DynamicModule. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DynamicModule.html

BibTeX

@misc{reference.wolfram_2024_dynamicmodule, author="Wolfram Research", title="{DynamicModule}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/DynamicModule.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_dynamicmodule, organization={Wolfram Research}, title={DynamicModule}, year={2021}, url={https://reference.wolfram.com/language/ref/DynamicModule.html}, note=[Accessed: 17-November-2024 ]}