RIAのMDIフォームについて
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
yonex_gogogo
投稿数: 12
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
題名の通り、RIAのMDIフォームでの動作について不明な点があり、質問させていただきます。
現在、Getting Started for RIA.pdf等を参考に、RIAの動作確認を行っています。
メインプログラムをMDIフォームとして起動して、ごく一般的なマスタメンテ画面と
その画面からズームして他のコードを検索する選択プログラムを作成しました。
通常のオンラインプログラムであれば、マスタメンテ画面から何回かズームをしても
選択プログラムは常に一画面だけの表示になりますが、RIAから何回か選択プログラムを呼びだすと
前回呼び出したウィンドウが消えずに、呼びだした回数分ウィンドウが開いてしまいます。
見た感じ、オンラインプログラムでいうところの並行実行をしているようも見えるのですが
RIAでここら辺の制御はうまくいくのでしょうか?
コンテキスト管理等、参考になりそうなところも参照してみたのですが、
いまいちわかりませんでした。
ご存知の方がおりましたら、ご教授下さい。
現在、Getting Started for RIA.pdf等を参考に、RIAの動作確認を行っています。
メインプログラムをMDIフォームとして起動して、ごく一般的なマスタメンテ画面と
その画面からズームして他のコードを検索する選択プログラムを作成しました。
通常のオンラインプログラムであれば、マスタメンテ画面から何回かズームをしても
選択プログラムは常に一画面だけの表示になりますが、RIAから何回か選択プログラムを呼びだすと
前回呼び出したウィンドウが消えずに、呼びだした回数分ウィンドウが開いてしまいます。
見た感じ、オンラインプログラムでいうところの並行実行をしているようも見えるのですが
RIAでここら辺の制御はうまくいくのでしょうか?
コンテキスト管理等、参考になりそうなところも参照してみたのですが、
いまいちわかりませんでした。
ご存知の方がおりましたら、ご教授下さい。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
yonex_gogogoさん
メインプログラムのタスク特性の「インタフェース」タブの中に、
「メニューからプログラムを起動した場合はタスクを閉じる」と
いうオプションがありますので、ここにチェックを入れて試して
みてください。
お望みの動作になると思います。
メインプログラムのタスク特性の「インタフェース」タブの中に、
「メニューからプログラムを起動した場合はタスクを閉じる」と
いうオプションがありますので、ここにチェックを入れて試して
みてください。
お望みの動作になると思います。
投票数:0
平均点:0.00
yonex_gogogo
投稿数: 12
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
tanda様
回答ありがとうございます。
先にお伝えすればよかったのですが、ご指摘の箇所は既にチェック済みとなっております。
引き続き調べていたところ、Magicヘルプに以下の記述を見つけました。
----------
リッチクライアントとオンラインの違い
オンラインからリッチクライアントへ
オンラインプログラムは、インタラクティブなリッチクライアント・プログラムに変更されます。
他のプログラムの呼び出し
[コール]処理コマンドの[出力先]特性において
リッチクライアントタスクでは、この特性が実行時のツリー内の出力先を探します。
オンラインタスクでは、この特性は、現在のタスクの子となるサブフォームタスクのみ探します。
プログラムが別のプログラムを呼び出す場合、オンラインプログラムの場合、プログラムの[並行起動]特性が設定されていない限り、呼び出し元のプログラムは中断されます。しかし、リッチクライアントプログラムが別のプログラムを呼び出す場合は、呼び出したプログラムは、呼び出されたプログラムと同時に一つのコンテキストで実行し続けます。並行実行プログラムを呼び出した場合、呼び出されたプログラムは新しいサーバコンテキストを開き、新しい実行ツリー上の最初のプログラムとして動作します。
並列実行プログラムを呼び出すプログラムを終了しても、呼び出されたプログラムは閉じません。
標準のオンラインプログラムの動作をシミュレーションするには、呼び出されたプログラムのフォームを「モーダル」に設定してください。これは、プログラムの[ウィンドウタイプ]特性を「モーダル」に設定することによって実行されます。
呼び出されたプログラムの[ウィンドウタイプ]が「デフォルト」に定義されている場合、自動的に設定されます。
----------
これをみた感じだと、RIAはモーダルウィンドウで起動させないと希望の動作にならないという風に読み取れるのですが、いかがでしょうか?
回答ありがとうございます。
先にお伝えすればよかったのですが、ご指摘の箇所は既にチェック済みとなっております。
引き続き調べていたところ、Magicヘルプに以下の記述を見つけました。
----------
リッチクライアントとオンラインの違い
オンラインからリッチクライアントへ
オンラインプログラムは、インタラクティブなリッチクライアント・プログラムに変更されます。
他のプログラムの呼び出し
[コール]処理コマンドの[出力先]特性において
リッチクライアントタスクでは、この特性が実行時のツリー内の出力先を探します。
オンラインタスクでは、この特性は、現在のタスクの子となるサブフォームタスクのみ探します。
プログラムが別のプログラムを呼び出す場合、オンラインプログラムの場合、プログラムの[並行起動]特性が設定されていない限り、呼び出し元のプログラムは中断されます。しかし、リッチクライアントプログラムが別のプログラムを呼び出す場合は、呼び出したプログラムは、呼び出されたプログラムと同時に一つのコンテキストで実行し続けます。並行実行プログラムを呼び出した場合、呼び出されたプログラムは新しいサーバコンテキストを開き、新しい実行ツリー上の最初のプログラムとして動作します。
並列実行プログラムを呼び出すプログラムを終了しても、呼び出されたプログラムは閉じません。
標準のオンラインプログラムの動作をシミュレーションするには、呼び出されたプログラムのフォームを「モーダル」に設定してください。これは、プログラムの[ウィンドウタイプ]特性を「モーダル」に設定することによって実行されます。
呼び出されたプログラムの[ウィンドウタイプ]が「デフォルト」に定義されている場合、自動的に設定されます。
----------
これをみた感じだと、RIAはモーダルウィンドウで起動させないと希望の動作にならないという風に読み取れるのですが、いかがでしょうか?
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
yonex_gogogoさん
失礼しました。元のご質問をよく見ると、コールコマンドで
サブタスクを呼んだときのお話だったんですね。
ヘルプに記載の通りのようですね。
失礼しました。元のご質問をよく見ると、コールコマンドで
サブタスクを呼んだときのお話だったんですね。
ヘルプに記載の通りのようですね。
投票数:0
平均点:0.00
yonex_gogogo
投稿数: 12
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
tanda様
やはりリッチのMDIフォームは通常のオンラインタスクと制御が違うようですね。
モーダルウィンドウでの設計を検討してみます。
ありがとうございました。
やはりリッチのMDIフォームは通常のオンラインタスクと制御が違うようですね。
モーダルウィンドウでの設計を検討してみます。
ありがとうございました。
投票数:0
平均点:0.00