所有オブジェクトのスクリプト記述
- Last UpdatedOct 08, 2024
- 1 minute read
ShowGraphic スクリプト関数内の所有オブジェクトでは、相対参照のみ解きます。絶対参照は、所有オブジェクトの影響を受けません。所有オブジェクトは、グラフィックの定義から独立しています。相対参照は、スクリプトをホストするオブジェクトにより解かれます。たとえば、GraphicName = "me.S1" または "Obj1.S1" であり OwningObject = "Obj2" である場合、所有オブジェクトが解決できるのはグラフィック S1 内の相対参照だけです。
ユーザーのアプリケーション内に 2 つのオートメーション オブジェクト インスタンス(「Reactor_001」および「Reactor_002」)が存在するシナリオを考えてみましょう。どちらのインスタンスにも 4 つのユーザー定義属性(int1、int2、real1、および real2)とグラフィック S1 があります。
グラフィック(Reactor_001.S1)には次の UDA 参照があります。
-
Me.int1(相対参照)
-
Me.real1(相対参照)
-
Reactor_001.int2(絶対参照)
-
Reactor_001.real2(絶対参照)
Reactor_001.S1 の ShowGraphic スクリプト("me.S1" または "Reactor_001.S1"、OwningObject = "Reactor_002")を設定してスクリプトをランタイム時に実行すると、このグラフィック内の相対参照は Reator_002 オブジェクトをポイントしますが、Reactor_001.S1 が表示されます。
この場合、次の処理が行われます。
-
グラフィックは常にオートメーション オブジェクト インスタンスのホストからのみ開きます(この例では「Reactor_001」)。
-
GraphicName のプロパティは、相対参照、絶対参照、または[視覚化]フォルダ グラフィック名に設定することができます。GraphicName プロパティで相対参照を使用する場合は、グラフィックは常にオートメーション オブジェクトのホスト インスタンス(この例では "Reactor_001")からのみ開きます。GraphicName プロパティで絶対参照または[視覚化]フォルダ グラフィック名("Reactor_001.S1" または "S1" など)を使用する場合は、その名前で該当するグラフィックが検索されます。
-
Me.int1、Me.real1 への相対参照は Reactor_002 へリダイレクトされます。
-
Reactor_001.int2 および Reactor_001.real2 への絶対参照は Reactor_001 からのみであり、Reactor_002 へのリダイレクトは行われません。
埋め込まれたグラフィック上のカスタム プロパティの上書きで使用される相対参照(me.int1)など)は、埋め込まれたグラフィックの所有オブジェクトに解決します。一方、コンテナ スクリプトで使用される相対参照は、スクリプトが設定されたグラフィックの所有オブジェクトに解決します。