- - PR -
VB6でのフォームの制御について
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-11 17:55
甕星もありがとう。
まったく、そのとおりです! 複数のインスタンスを生成したいんです。 「Formのメンバ変数にするとか、Collectionを使って、インスタンスを管理する」って 具体的にはどうすればいいんですか? なにぶん初心者なものですから・・・。 もう少し、おしえてもらえませんか? | ||||||||||||||||
|
投稿日時: 2005-10-11 18:45
「さん」を付けましょうね。(^^/
#混乱してきました。 「画面」とは同じものを指してますか?それともボタンごとに違う画面でしょうか? メンバ変数にするとは、 ボタンのクリック内でDim frm As Form1とSet frm = New Form1としてますよね。 これだとローカル変数なのでそのプロシージャ内でしか見れないのです。 変数にはスコープ(適用範囲)というものがあり、 例えばフォームの(General)にPrivate frm As Form1と書けばフォーム内のどこからでも見れるようになります。 ここまでくればあとはその変数が空っぽかどうかで判断できますよね。 Collectionに関しては、上記の保存する情報をひとつの入れ物に入れてまとめて管理しましょうということです。 | ||||||||||||||||
|
投稿日時: 2005-10-11 19:08
甕星さん、ゴメンなさい。
「さん」を付け忘れてましたね。 まどかさん、ありがとう。 もう少し詳しく説明します。 「画面」とは、ひとつです。いわゆる、メニューですね。 たとえば、それにボタンを2つ置きます。 それらいずれのボタンを押しても同じフォームを使って、最大2つのフォームを表示したいんです。 だから、ひとつのボタンについて言えば、フォームが表示されるのは1回だけにしたいんです。 説明は、以上。 グローバルでとればいいんですね!? でも、その変数がからっぽかどうか?なんてどうやってしらべるんですか? すみません。 何もわかってなくて・・・。 | ||||||||||||||||
|
投稿日時: 2005-10-11 19:37
こんにちは、じゃんぬ です。
この 2 つでは微妙に意味合いが異なります。 多分後者で良いのでしょう。 で、グレーダウンはさせたくないということですよね。 先ほどから何度も回答していますが、思いつくものを列挙。
私だけでなく何人もの方が言っていますが、プライベート メンバでいいです。
先の私のコードが答えそのものだったりしますが、どうなんでしょう。 空というよりは存在しないと言うべきなのでしょうか? "何が" 判らないのかが、判らないので教えたくても書けないように思えます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2005-10-11 20:21
>でも、その変数がからっぽかどうか?なんてどうやってしらべるんですか?
「からっぽ」というのが分かりにくいなら、たとえば Private フォームA用 As Integer Private フォームB用 As Integer で、ボタンAで表示されるときに「フォームA用」を1に、 クローズされるときに0にしてあげるとかでも、良いのですよ。 Integerなら、調べ方は分かりますよね? | ||||||||||||||||
|
投稿日時: 2005-10-12 00:22
つまり、フォームモジュールは一つだけれど それぞれのボタンでそれ専用のフォームを表示したいと。 ボタンとフォームインスタンスが一対一ですね。 まず、それぞれのボタンに対応したフォームのインスタンスを入れておく変数を用意しましょう。 #変数のスコープはいいですね? そしてそれぞれのボタンで先に作った変数でフォームを表示します。 その際に変数が空っぽだったら表示、じゃなかったらそのインスタンスを利用してアクティブにしたりします。 空っぽについては「Nothing」を調べてみましょう。 | ||||||||||||||||
|
投稿日時: 2005-10-12 07:50
おはようございます。
みなさん、ありがとうございます。 ようやく、わかりはじめてきました。 ところで、まどかさん。 「Nothing」を使ってからっぽかどうか調べてみました。 Dim frm As Form1 Set frm = New Form1 If frm = Nothing Then Exit Sub End If すると「if」文で「オブジェクトの使い方が不正」というエラーになりました。 「Nothing」ってどうやって使うの? | ||||||||||||||||
|
投稿日時: 2005-10-12 08:51
流石にこれは調べて頂きたかったのですが、ずばり答えを書きます。
こんな風に使います。 さて、私が Nothing の使い方に躓いたのならば、使っているであろうソースを探します。 http://www.google.co.jp/search?hl=ja&q=If+Nothing&lr=lang_ja _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |