コンポーネント特性の即時有効について
お世話になっております。
いつも拝見させていただいております。
コンポーネント機能を使用して
他magicプロジェクトを読み込んでいるのですが
現状以下のような挙動になっています
プロジェクトAにプロジェクトBをコンポーネント追加(即時有効:Yes)
プロジェクトAにAプログラム作成
プロジェクトBにBプログラム作成
AプログラムにてBプログラムをコール
【実行】
Aプログラム
【実行順】
プロジェクトBメインプログラム
→プロジェクトAメインプログラム
→Aプログラム
→Bプログラム
(Magic 4.9 PT1にてテストしています)
ただ、今のプログラムの作り的に
プロジェクトAのメインプログラムを最初に実行させたいため
「即時有効:No」に設定し試してみたのですが
相変わらずプロジェクトBメインプログラムが一番最初に実行されてしまいます
「即時有効」のYesとNoはどのような違いがあるのでしょうか?
また、実行プロジェクトのメインプログラムを最初に実行させる方法がもしありましたら
ご教授いただけると幸いです。
-
system magicさん、
プロジェクトの構造を見てみないと詳細は分かりませんが、記述された動作は理にかなっているように思えますよ。メインとなるプロジェクトが実行される時点においては、あらかじめコンポーネント側に登録されたものをロードして待機させておく必要がありますから、そのような動きになるかと思います。
.NET Frameworkのコンポーネントを読み込む場合も、Frameworkが先にロードされて、待機状態になりますよ。
-
system magicさん、
補足ですが、ヘルプによると即時有効が「Yes」の場合は、メインプロジェクトの読込時にコンポーネントも同時に読み込まれ、「No」の場合はコンポーネントが最初に使用される時点で読み込まれるという動きになるようですね。
-
tanda様
早急なご回答ありがとうございます!
現状の作りですと、実行元プロジェクトが最初に実行されないと
うまく挙動しないため困っておりました。ヘルプも拝見し「即時有効:No」にすれば、
コンポーネント使用時点でコンポーネント先メインプログラムが処理されると思っていたのですが、
そのようには動作してくれないようですね…プロジェクトの作りを見直してみようと思います
サインインしてコメントを残してください。
コメント
3件のコメント