Меню

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Меню

Сообщение vladimirr » 01.01.2004 (Чт) 23:04

Ребята, у меня к вам вот такой вопрос. Контекстные меню в VB не могут иметь графические картинки справа, как это делается, например, в приложениях MS OFFICE (исключением является SetMenu через API, но это не панацея и, по всей видимости, создатели офиса использовали не это). Как всё-таки возможно добиться такого результата, который достигнут в этом пакете. Слышал такую вещь, что Офис писался именно в VB. Может, создатели использовали Active X, тогда как бы достать что-нибудь такое.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

cPopupMenu

Сообщение hCORe » 01.01.2004 (Чт) 23:15

Смотри контрол cPopupMenu на vbaccellerator'е. Там пример есть, но думаю все понятно будет :wink:
Моду создают модоки, а распространяют модозвоны.

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Сообщение vladimirr » 01.01.2004 (Чт) 23:44

Эта ссылка не работает

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 02.01.2004 (Пт) 0:02

http://vbaccelerator.com - Вот правильная ссылка.
ПРЕВЕД

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Глюки :wink:

Сообщение hCORe » 02.01.2004 (Пт) 13:21

Извиняюсь... Глюки пошли :cry: А сайт VBAccellerator.com - прикольная вещь. Там все, что нужно для нашего программистского счастья :wink:
Моду создают модоки, а распространяют модозвоны.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 15:14

Эх.. Если бы...

На самом деле то, что там, надо доробатывать серьезно. Не под наши цели часто :(.

С другой стороны - надо радоваться тому, чтое есть :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 02.01.2004 (Пт) 18:34

gaidar писал(а):На самом деле то, что там, надо доробатывать серьезно. Не под наши цели часто :(.

А вот об этом можно поподробнее?
ПРЕВЕД

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 21:14

Ты сам попробуй использовать в своих приложениях. Увидишь - посыпятся ошибки, многое сделано не совсем так как надо, устойчивость слабая.
Производительность часто храмает :(.
Но это, как всегда, с любым когом так - написаный не тобой и будет работать соответственно не так, как этого хочется тебе - приходится править.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение Tarik » 02.01.2004 (Пт) 22:00

Слышал такую вещь, что Офис писался именно в VB.

:shock: :shock: :shock:
Изображение

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

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 22:07

Неа... Не на VB, спи спокойно.

Также как и Office 2003 не на .NET :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение Tarik » 02.01.2004 (Пт) 22:27

gaidar писал(а):Неа... Не на VB, спи спокойно.

Также как и Office 2003 не на .NET :)

Ф-фууххх... Прям отлегло :lol:
Изображение

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

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.01.2004 (Пт) 22:58

Флейм нон-стоп :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 03.01.2004 (Сб) 1:32

gaidar писал(а):Ты сам попробуй использовать в своих приложениях. Увидишь - посыпятся ошибки, многое сделано не совсем так как надо, устойчивость слабая.
Производительность часто храмает :(.
Но это, как всегда, с любым когом так - написаный не тобой и будет работать соответственно не так, как этого хочется тебе - приходится править.

Здесь бы я поспорил. Уже давно использую их ActiveX, и все нормально работает. Конечно, может использую не все возможности контролов, но, повторюсь, все работает на ура.
Да, конечно, не все как хотелось бы мне там есть, но все можно усовершенсвовать, благо исходняки каждого контрола есть.
ПРЕВЕД

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 03.01.2004 (Сб) 1:55

Ладно, не будем флеймить и флудить.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Сообщение vladimirr » 03.01.2004 (Сб) 18:44

Говорят вообще, будто 90% программ в америке пишутся именно в родном VB! :!:

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Меню

Сообщение vladimirr » 03.01.2004 (Сб) 18:46

Говорят вообще, будто 90% программ в америке пишутся именно в родном VB! :!:

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 03.01.2004 (Сб) 21:02

Вообще посмотри процент предложений работодателей для VB - пока лидирует (примерно 40-50%).

Но не 90 :(. Если считать профессиональные. А если считать школьников и их проекты - то все 99 ;)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 03.01.2004 (Сб) 23:18

gaidar писал(а):Вообще посмотри процент предложений работодателей для VB - пока лидирует (примерно 40-50%).

Но не 90 :(. Если считать профессиональные. А если считать школьников и их проекты - то все 99 ;)

Потому что ВБ легок в применении, вот и используют его. Хотя многое, то что в Делфи на виду, приходится делать ручками.
ПРЕВЕД

captor
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 03.01.2004 (Сб) 20:44
Откуда: Москва

Сообщение captor » 04.01.2004 (Вс) 1:10

все прочитал, скачал.... куда девать теперь .ocx ?
и как эту библиотеку подключить?
vbAccelerator Toolbar and CoolMenu Control v3.5
[url]http://vbaccelerator.com/home/VB/Code/Controls/Toolbar/vbAccelerator_ToolBar_and_CoolMenu_Control/article.asp[url][/url]

captor
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 03.01.2004 (Сб) 20:44
Откуда: Москва

Сообщение captor » 04.01.2004 (Вс) 1:58

так.. сейчас расклад такой:
скачал PopupMenu DLL... как его теперь подключить?
спасибо!

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

Сообщение Tarik » 04.01.2004 (Вс) 13:23

Итак. Гхм-гхм...

Руководство по созданию меню с иконками

Шаг 1 - скачивание библиотек
Раз уж мы решили создавать меню со значками с помощью VbAccelerator'а, то будем использовать библиотеку под названием "VB6 IconMenu DLL". Взять её можно по ссылке: http://www.vbaccelerator.com/home/VB/Co ... Source.zip . Но! Это ещё не всё. Эта библиотека использует контрол под названием "ImageList", в котором, собственно, и будут храниться все значки. Итак, качаем: http://www.vbaccelerator.com/home/VB/Co ... Source.zip . После скачивания эти библиотеки надо зарегистрировать. Распакуйте архив с IconMenu dll в отдельную папку и перейдите в неё. Там Вы увидите ещё одну папку под названием "Release". В ней находится файл "vbalIcoM6.dll". Скопируйте его в системную папку (обычно C:\windows\system - если у Вас Windows 9x/Me и C:\windows\System32 - если Windows NT/2k/XP). Теперь нажмите "Пуск" и выберите команду "Выполнить". В текстовом поле введите следующее: "regsvr32 vbalIcoM6.dll" и нажмите ОК. Теперь распакуйте архив с ImageList и скопируйте файлы из папки Release в системную папку. Ещё раз вызовите диалог "Выполнить" и введите "regsvr32 vbalIml6.ocx".

Шаг 2 - создание меню
Теперь можно непосредственно приступить к созданию меню. Запустите VB и создайте новый проект. В меню Project выберите команду References. Найдите в списке библиотек пункт "vbAccelerator VB6 IconMenu Dll - Add Icons to VB Menus" и поставьте напротив него галочку. Нажмите ОК. Теперь в том же меню выберите команду Components. В списке контролов найдите "vbAccelerator Image List Control (VB6 version) и тоже поставьте напротив него галочку. Снова нажмите ОК. Теперь создайте новое меню с помощью привычного редактора меню. Допустим, что вы создали подпункты с именами f1 и f2, которые будут отвечать за открытие и сохранение документа. Теперь положите на форму ImageList и дайте ему имя "IL1". Затем нажмите кнопку с многоточием напротив свойства "Custom". Откроется окно свойств этого контрола. Перйдите на вкладку "Images" и с помощью кнопки "Add..." добавьте нужные значки. Для каждого значка задайте уникальное имя в поле "key". Допустим, Вы добавили два значка (для открытия и для сохранения) и дали им имена "Open" и "Save" соответственно.

Шаг 3 - Назначение значков пунктам меню
Теперь перйдём непосредственно к написанию кода.
В разделе General вставьте следующий код:
Код: Выделить всё
Dim IM As New cIconMenu

Это вставьте в Form_Load:
Код: Выделить всё
Set IM = New cIconMenu
IM.Attach Me.hWnd 'привязываем контрол к форме
IM.ImageList = IL1 'назначаем imagelist для контрола
IM.IconIndex(f1.Caption) = IL1.ItemIndex("Open") - 1 'назначаем значки пунктам меню. f1 и f2 - имена пунктов меню, которое Вы создали,
IM.IconIndex(f2.Caption) = IL1.ItemIndex("Save") - 1 'а "Open" и "Save" - имена картинок, которые Вы дали им в свойствах ImageList.

Теперь запустите проект и, если Вы всё сделали правильно, Вы сможете лицезреть меню со значками!
Изображение

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

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Сообщение vladimirr » 04.01.2004 (Вс) 17:48

Эта ерунда пишет, что возникла ошибка 429 и Active X не может создать объект. Во время отладки маркер ставит сразу в стоке «IM.Attach Me.hWnd 'привязываем контрол к форме»

captor
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 03.01.2004 (Сб) 20:44
Откуда: Москва

Сообщение captor » 04.01.2004 (Вс) 18:12

for Tarik

Спасибо большое - все работает!

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

Сообщение Tarik » 04.01.2004 (Вс) 18:38

vladimirr писал(а):Эта ерунда пишет, что возникла ошибка 429 и Active X не может создать объект. Во время отладки маркер ставит сразу в стоке «IM.Attach Me.hWnd 'привязываем контрол к форме»

Так вы, наверное, библиотеку не зарегистрировали...
Изображение

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

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Меню

Сообщение vladimirr » 04.01.2004 (Вс) 19:07

После указанных вами действий появилось сообщение, что dll, а затем и ocx RegisterServises успешно завершено. Все галочки в самом VB установил Ещё при отладке в 4 строке всплывает: «IM.IconIndex(f1.Caption) = <Invalid procedure call or argument>. Прямо и не знаю, что делать. :(

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

Сообщение Tarik » 05.01.2004 (Пн) 11:53

Странно... Если у меня возникает такая ошибка (ActiveX component can't create object), поваторная регистрация контрола обычно её фиксит.
Изображение

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

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Меню

Сообщение vladimirr » 05.01.2004 (Пн) 23:24

Пробовал и на 98 и на XP, результат тот же. Active X не может создать объект. Может, эти длл и осх не верно прописываются где-нибудь в реестре, тогда, кто может, подскажите, как вручную регистрировать эти компоненты.

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

Сообщение Tarik » 06.01.2004 (Вт) 11:29

Вручную - это больно :) Если уж всё так плохо, можно и каким-нибудь другим контролом воспользоватся :roll: Их на vbaccelerator'е (http://www.vbaccelerator.com/home/VB/Co ... /index.asp) - хоть пруд пруди. Тем паче, что к каждому контролу у них исходник и пример прилагается.
Изображение

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

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Сообщение Emzari » 07.01.2004 (Ср) 17:52

Помотри мой проект думаю может пригадится
Вложения
Menu.zip
(25.19 Кб) Скачиваний: 96

vladimirr
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 01.01.2004 (Чт) 22:57
Откуда: Ставрополь

Сообщение vladimirr » 07.01.2004 (Ср) 20:55

Нет, брат. Ты, конечно, меня извини, но стиль этого дела должен быть чисто стилем Windows. Самому такое не состряпаешь посредством обычных контролов, хотя за работу – похвала.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 104

    TopList