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

投稿日: 2007/05/21(Mon) 16:50
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: モジュール

> コードをすっきりさせようと思いました。
その手法の場合、「コントロール配列」が使用できなくなるという縛りがあるので、ご注意あれ。


> どこがよくないのでしょうか?
変数の有効期間の問題ですね。

Class1 オブジェクトが、プロシージャ内で宣言された「ローカル変数」であるため、
プロシージャ終了と同時に、クラスのインスタンスが破棄されてしまうためです。

クラス側に下記のようなコードを書いておくと、問題点が見えてくるでしょう。

 Private Sub Class_Initialize()
  Debug.Print "==>作成:"; ObjPtr(Me)
 End Sub
 Private Sub Class_Terminate()
  Debug.Print "<==破棄:"; ObjPtr(Me)
 End Sub



この場合は、変数宣言をフォームの宣言セクションに移し、
モジュール レベルの変数としてみてください。それで解決できるかと思います。


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

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

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