アンロードができないことについて


kazu  2003-12-10 02:13:26  No: 80801

Unload ステートメントを使用して、
画面をアンロードしているのですが、できないことがあります。
現象理由、対応方法がわかる方おりましたらお教えください。
OSはWindowsXPです。


岡田 之仁  2003-12-10 02:49:50  No: 80802

Unloadできない・・・と言うことは、環境はVB6以前ですネ?
最近、環境を書かない方が多いので、掲示板で問い合わせたい
場合は、ちゃんと、環境を書きましょう!

また、何をどうしているのだが、その場合、こうこうなる。
と言う前提の説明も不足している為、Unloadできないと書かれて
も、コメントのしようがありません。
それ以前の状態を詳しく書いて下さい。

多分、何かタイミング的なものか、デバイスアクセスのクローズ
忘れなのか・・・あくまで推測の域を脱しません。

以上。


正宗  2003-12-10 02:57:04  No: 80803

.NETの場合、起動フォームはアンロードできません。
アンロードすると終了するはず…
詳しくはヘルプを見てください。載ってます。


kazu  2003-12-10 03:41:57  No: 80804

申し訳ありません。。。
先程、投稿したものです。
ご指摘されていた通り、
環境、タイミングの記述をしてりませんでした。。。
VBはVB6 を使っております。
タイミングは、
親画面から子画面のパブリックプロシージャを呼び
その中で子画面(自分)を表示、
その後に子画面で親画面をアンロードしています。
そして、処理は親に戻ります。

ご意見ありがとうございます。。


岡田 之仁  2003-12-10 06:45:47  No: 80805

VB.NET でも、VB6 でも、起動フォームを、子フォームからは
HIDEでいても、UNLOADできません。

ですが、方法はありますが、いろいろ悪影響もありますが・・・

標準モジュールのSsub Mainで起動するようにし、そこから
以前のスタートアップフォームになっていたフォームを表示
させます。

ここで細工・・・モーダルで表示すれば、当然ながら、子
フォームからはUNLOADできません。

ですが、モードレスで表示すれば、子フォームからUNLOAD
できます。ですが、モードレスで起動した場合、Sub Main
から起動したのですが、即終ってしまうので、フローバル
変数か何かで、そのフラグが繁華しない限り終わらないよ
うにしなければなりません。またその待ちのループでは、
CPUをあまり使わないように細工しないと、100%CPUを、
食いつぶします。

他にも方法はあると思いますが・・・

わざわざ親フォームとなるものをUNLOADしないでも、条件
的には、HIDEでもよいのでは?ある条件になった場合、全
てのフォームが閉じられ、終了するようにすればよいので
は?

ご検討下さい。

因みに、VB.NETでも、同様の方法で、可能です。

以上。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加