妄想・想像・創造
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
言われてみれば、「あ~」って感じ。
VBのフォームは『グローバル変数』
つまり、
この所為で、落とし穴に嵌った。
実は、VBのUnloadって奴。メモリから全てが消えてしまうと
思っていたのだが、どうもそうではないらしい。
Formsコレクションから消えるだけで、インスタンスが初期化されるわけではない。
例えば、こんなフォームがあって、
ってすると、メッセージボックスが2回表示され、2回とも「黒幕」と表示される。
じゃ、どうしたらいいのん?
VBのフォームは『グローバル変数』
つまり、
Form1.Showって、どこでも書ける。
この所為で、落とし穴に嵌った。
実は、VBのUnloadって奴。メモリから全てが消えてしまうと
思っていたのだが、どうもそうではないらしい。
Formsコレクションから消えるだけで、インスタンスが初期化されるわけではない。
例えば、こんなフォームがあって、
// Form1内
Private m_strValue As String
Public Property Let Item (value As String)
m_strValue = value
End Property
Private Sub Form_Load()
MsgBox m_strValue
End Sub
Form1.Item = "黒幕"
Form1.Show
Unload Form1
Form1.Show
ってすると、メッセージボックスが2回表示され、2回とも「黒幕」と表示される。
じゃ、どうしたらいいのん?
この記事にコメントする
» Re:この方法だと
gorさんのおっしゃる通り、焦点は「インスタンス生成」、つまり、Form1の初期化です。
確かに、冒頭では、メモリ開放にちょっと触れてるので、繋がりがないですよね(苦笑
メモリ開放に関しては、
Set Form1 = Nothing
で、良いと思ってます。
そういえば、書き忘れましたが、フォームの「×」ボタンだと
Set Form1 = Nothing
と、同じ効果だった気がします。
VBおそるべし・・・
確かに、冒頭では、メモリ開放にちょっと触れてるので、繋がりがないですよね(苦笑
メモリ開放に関しては、
Set Form1 = Nothing
で、良いと思ってます。
そういえば、書き忘れましたが、フォームの「×」ボタンだと
Set Form1 = Nothing
と、同じ効果だった気がします。
VBおそるべし・・・
カレンダー
03 | 2025/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
カテゴリー
最新記事
(06/26)
(06/25)
(03/16)
(02/09)
(02/02)
プロフィール
HN:
編集長 黒幕
HP:
性別:
非公開
自己紹介:
京阪奈を中心に活動する自称ストリートミュージシャン。
目標は、唄って踊れる、さらに、ゴルフも上手い、さらに
字も綺麗なアーティスト。
最近、MCや物販が一人歩きで有名になり、
実際、唄うと
「あ~、この人唄えるんだぁ~」
みたいな目で見られることが多い。
また、スタッフと間違われること多し。
「あっ、ドリンク頼んで良いですか!」
目標は、唄って踊れる、さらに、ゴルフも上手い、さらに
字も綺麗なアーティスト。
最近、MCや物販が一人歩きで有名になり、
実際、唄うと
「あ~、この人唄えるんだぁ~」
みたいな目で見られることが多い。
また、スタッフと間違われること多し。
「あっ、ドリンク頼んで良いですか!」
ブログ内検索
カウンター