Динамическое создание меню

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Динамическое создание меню

Сообщение Алексей К. » 27.05.2004 (Чт) 10:33

В дизайнере создано меню "пункт" Как в процессе выполнения создать в нем массив подменю? Что бы у меня было в коде:

скока_надо=5
... строка добавления подменю в меню "пункт"
for i=0 to скока_надо
load form1.подменю(i)
form1.подменю(i).caption=i
next i

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 27.05.2004 (Чт) 10:45

Для начала нужно создать хотя бы один пункт подменю, которые ты хочешь загружать. Например, создаёшь пункт с именем m2 и индексом 0. Потом пишешь:
Код: Выделить всё
for i=1 to Skoka_Nado
     load m2(i)
     m2(i).caption=i
     m2(i).visible=true
next i
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 27.05.2004 (Чт) 10:52

В этом-то весь и прикол. что и меню с индексом 0 уже через unload не уберешь. Ругаться будет: "Нельзя удалить обьект созданный в дизайнере". А мне надо: подменю либоесть - либо нет.
подменю(0).visible=false не надо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.05.2004 (Чт) 10:59

Так пусть submenu(0).Visible=False будет всегда. А если надо создать подпункты, то добавляешь submenu(1) и т.д.
А если такой способ не устраивает, то добро пожаловать в мир API и геморроя.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 27.05.2004 (Чт) 11:15

Насчет визибла: при попытке спрятать единственный подпункт меню вывалится рантайм ошибка - типа, нельзя прятать единственный пункт. Поэтому мой совет: делай егойному родителю Enabled = False - при задизабленном родителе потомки даже не отображаются, насколько я помню. Оно еще вот в каком аксепте удобно - юзер привыкает, что пункты меню всегда на одном и том же месте, а не скачут туда-сюда в зависимости от того, что ты показал/спрятал.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 27.05.2004 (Чт) 23:35

alibek писал(а): А если такой способ не устраивает, то добро пожаловать в мир API и геморроя.



На самом деле никакого геморроя нет .
с API все просто и доступно

http://www.vbaccelerator.com/home/VB/Co ... rticle.asp


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 5

    TopList