VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/03/07(Mon) 18:02
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: プログラムが終了しない。

アンロード状態で、フォームのプロパティ(たとえばhWndプロパティ)に
アクセスしている部分があるのでは無いでしょうか?


> 再生されたままの状況になってしまいます。
その状態で「一時停止ボタン」を押してから、イミディエイトに下記の一行を
貼り付けて、Enterで実行してみてください。もしも 1以上の数が現れたら、
ロード中のフォームが残っている事になります。

?"表示フォーム数="DoEvents,"ロードフォーム数="Forms.Count


もし、フォームが残っているようであれば、下記の手順で調査してみてください。

まず、それぞれのフォームの「Private Sub Form_Load()」の行に
ブレークポイントを張っておきます。この状態で実行すると、フォームが
ロードされるたびに止まりますよね。

そうしたら、ブレークポイントで中断されたときに、[Ctrl]+[L] キーを
押してみて、どの処理によってフォームがロードされているのか、
呼び出し履歴で確認してみましょう。
ロードするつもりの無い部分から、ロード処理が呼ばれていたりはしませんか?


もしも、ロード処理には問題が無いようであれば、今度はアンロード
し忘れているフォームが無いかを探してみてください。たとえば、
Hideメソッド、または Visible = False にて消したままのフォームが
残っていたりはしませんか?

こちらの場合は、Initialize/Load/Unload/Terminateイベントが、
どのタイミングで発生しているかを追跡していけば、原因を
突き止められるかと思います。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -