重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

まずは環境を、Windows2000、VB6SP6です。

早速ですがメニューの追加をしたいのですが、過去ログを検索すると
http://oshiete1.goo.ne.jp/kotaeru.php3?q=997423
こちらの方法が見つかったのですが、これとは少し違うのです。

あらかじめ、メニューは作成しているのですが、
下記は例ですが構成が

menu + sub(0) + subsub(0)

となっています。
元々はsubsub()だけだったのですが、
これはインデックス数が不特定で、最大100まで変動する予定です。
(起動時にプラグインのようなもの読み込むため変動します)

menu + subsub(0)~subsub(99)とするとメニューが長すぎて画面に入りきりません。

そこで、sub()を間に入れ、subsub()を10個づつに区切ろうとしました。

変動するメニュー数が50個とした場合
for i = 1 to 5
    load sub(i)
    for j = 1 to 9
        load subsub(i * 10 + j)
    next i
next i

とこんな感じにしてみたのですが、実行すると、
sub(0)以下のメニューにしかsubsub()は追加されません。

load で増やしたメニューのさらに下に load でメニューを増やすことは出来ないでしょうか?

やはり上記のリンク先のようにAPIで作るか、
メニューを最初から作っておくべきなのでしょうか?
分かりにくいかもしれませんがよろしくお願いします。

A 回答 (1件)

>APIで作るか、メニューを最初から作っておくべきなのでしょうか?


その通りです。

構造的に
SUB1/SUBSUB11~19
SUB2/SUBSUB21~29
SUB3/SUBSUB31~39
SUB4/SUBSUB41~49
SUB5/SUBSUB51~59
ということだと思いますが、SUB1とSUB2は配列ではありますが、別物です。
SUBSUB11とSUBSUB21は別の親にぶら下がることになるので、SUBSUB11とSUBSUB21を配列としての関係を持たせることは、できません。

さらに、コントロール配列は増やせるが、作成できないので、
SUB1/SUBSUB11
SUB2/SUBSUB21
SUB3/SUBSUB31
SUB4/SUBSUB41
SUB5/SUBSUB51
は最初に存在していなければならなく、各SUBSUBを増やす処理というだけになります。


思いのままのメニュー構造にしたいのであれば、APIを使うしかないと思われます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはり思っていた通りですね・・・

構造はおっしゃる通りのものです。
メニューを最初から作っておくことで解決しようかと思います。
ありがとうございました。

お礼日時:2005/07/27 12:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!