Построение меню с помощью плагина
|
|
Sam726 | Дата: Пятница, 30 Октября 2009, 14:09 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Протестируйте меню. Что не так? Чего не хватает. Я в плагинах дубовый, поэтому тупо изменял примеры данные в коплекте с плагином и вот что получилось. Возможно кто-то знает что и к чему, сможет объяснить на правильном ли я пути.
Сообщение отредактировал Mad-Dog - Пятница, 30 Октября 2009, 17:48 |
|
| |
YURIY | Дата: Пятница, 30 Октября 2009, 19:51 | Сообщение # 2 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| ээ, ну запустил, всё работает вроде... Чего не так-то?
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Пятница, 30 Октября 2009, 19:53 | Сообщение # 3 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| YURIY, ну может я в кодах где-то чего-то не дописал или лишнего написал. Меня это интересует. Все нормально?
|
|
| |
YURIY | Дата: Пятница, 30 Октября 2009, 20:45 | Сообщение # 4 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| гм.. Ну а как ты можешь что-то написать не то, или лишнее, когда ты копировал код из примера и изменял под себя? При беглом осмотре вроде всё нормально, но, если что, плагином этим не пользуюсь. Не было необходимости. Поэтому, изучать его и на 100% ответить на твой вопрос у меня нет времени.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Воскресенье, 01 Ноября 2009, 18:26 | Сообщение # 5 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| YURIY, и на том спасибо... Добавлено (01 Ноябрь 2009, 18:21) --------------------------------------------- YURIY, вот что еще интересное я заметил. Когда я добавил меню в свой проэкт, то оказалось что при переходе между страницами меню каждий раз удваивается, и активной стает последнее добавленное меню. Не знаеш как убрать этот баг!? Добавлено (01 Ноябрь 2009, 18:26) --------------------------------------------- Наверное надо как-то убирать меню при выходе с странице, что бы при открытии новой все было ОК. Но вот только как...
|
|
| |
YURIY | Дата: Воскресенье, 01 Ноября 2009, 18:49 | Сообщение # 6 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Mad-Dog) YURIY, вот что еще интересное я заметил. Когда я добавил меню в свой проэкт, то оказалось что при переходе между страницами меню каждий раз удваивается Ну так правильно. У тебя в сценарии старта первой страницы указано создавать меню. Что тебе не нравится в таком случае? Сколько раз будешь переходить на первую страницу - столько меню и создашь. Чтобы сценарий срабатывал только один раз при запуске программы, модифицируй сценарий очень простым способом: Code If (start=0) Then RunScript("main_menu_constructor") start=1 End А до этого у тебя была только вторая строка. Смысл прост. Все переменные при запуске проекта имеют значение 0, даже если переменная не создана. Воспользуемся этим, запустим скрипт и присвоим переменной единицу. Если вернуться ещё раз на первую страницу - условие станет ложным, ведь мы уже присвоили переменной 1 и меню не будет создано.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Пятница, 06 Ноября 2009, 15:54 | Сообщение # 7 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| YURIY, Спасибки!!! :thumbs_up: Добавлено (06 Ноябрь 2009, 15:54) --------------------------------------------- Новой вопрос (дополнение). Как сделать текст меню внешним? Я пробывал так: PluginSet("PlugIn","FileMenuHandle") ItemName$='a1$' PluginSet("PlugIn","ItemName$") PluginRun("PlugIn","CreateMenuItem") Plugin Get("P lugIn","Menu") file$='D:\Temp\lang.txt' FromLine1=1 NumOfLines1=1 b1$=StrFromFile(file$,FromLine1,NumOfLines1) LoadText("a1$","b1$") Н о результат негативный
Сообщение отредактировал Mad-Dog - Пятница, 06 Ноября 2009, 15:57 |
|
| |
Rush | Дата: Пятница, 06 Ноября 2009, 18:09 | Сообщение # 8 |
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
| Mad-Dog, ты шиворот-навыворот все делаешь. Code PluginSet("PlugIn","FileMenuHandle") file$='D:\Temp\lang.txt' ItemName$=StrFromFile(file$,1,1) PluginSet("PlugIn","ItemName$") PluginRun("PlugIn","CreateMenuItem") PluginGet("PlugIn","Menu")
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 20:07 | Сообщение # 9 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Rush, Спасибо!!! Добавлено (01 Декабрь 2009, 20:07) --------------------------------------------- Есть скрипт: Code enable_min=enable_min<>TRUE If (enable_min) Then LoadText("status1",":: Enabled") Else LoadText("status1",":: Disabled") End PluginSet("PlugIn","enable_min") PluginRun("PlugIn","EnableMinToTray") Его можно как то уменьшить? Этот код включает и отключает возможность сворачивания программы к часам. Хотелось бы что-то попроще что бы поставить на стартувую страницу что бы прога всегда сворачивалась к часам.
|
|
| |
YURIY | Дата: Вторник, 01 Декабря 2009, 20:25 | Сообщение # 10 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Mad-Dog) что бы поставить на стартувую страницу что бы прога всегда сворачивалась к часам Так что ли? Code PluginSet("PlugIn","1") PluginRun("PlugIn","EnableMinToTray") Однако я не понял, что тут сложного? Нельзя справку почитать, там же написано это.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 20:36 | Сообщение # 11 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Так она на анлийськом...
|
|
| |
YURIY | Дата: Вторник, 01 Декабря 2009, 20:37 | Сообщение # 12 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| google.ru -> Переводчик on-line Да и не нужна справка. Из твоего кода элементарно делается вывод, как его сократить...
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 21:00 | Сообщение # 13 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| получилось...
|
|
| |
Alex3A | Дата: Вторник, 01 Декабря 2009, 21:08 | Сообщение # 14 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (Mad-Dog) Кстати говоря, твой код не пашет! :\ Я так уже пробывал... Нет там никакого кода, просто совет, к которому надо включить немного серого вещества. Ты старайся не скопировать чего то а понять как оно работает. Никогда не видел этого плагина, и врят ли его увижу.. PluginSet("PlugIn","enable_min")но, enable_min =(0 или 1), что то включает или выключает в зависимости от значения. Билдер не совсем как лего, надо понимать что ты делаеш, и подход копипасте не всегда конает. А код приведенный YURIY, PluginSet("PlugIn","0")вполне работает прячет или выключает что то, с таким же успехом можно сказать что его поправка PluginSet("PlugIn","1") то же не работает, ей нельзя отключить\спрятать меню.
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 21:20 | Сообщение # 15 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Alex3A, Quote Нет там никакого кода, просто совет, к... Извеняюсь. Я малехо подзабыл когда YURIY мене об этом говорил (в другой теме). Я с плагинани только начал работать, раньше я их вообще не использовал, создавал огромные меню, когда можно было все сделать быстрее и легче. Quote Нет там никакого кода, просто совет, к нет. ну так мене ж не надо переключать эту возможность, я б тогда ничего и не менял. Я хочу сразу запустить и что бы уже все работало.Добавлено (01 Декабрь 2009, 21:20) ---------------------------------------------
Code Win$=WinVer()+'.' If (VAL(GetArrayItem(Win$,'.',1))>=6) Then NT6=TRUE If (VAL(GetArrayItem(Win$,'.',3))>=7000) Then iOffset=1 End End IconParam$='SmallPlugin '+Version$+', <Embedded>\icon.ico, 0' PluginSet("PlugIn","IconParam$") PluginRun("PlugIn","TrayIconParam") RunScript("tray_menu_constructor") Я не совсем понял что тут написано и для чего оно... Но я думаю что если оставить последние 4 строчки то все будет нормально? Оно то вроде все нормаль, рабоет и без него...
|
|
| |
DEMBEL | Дата: Вторник, 01 Декабря 2009, 22:12 | Сообщение # 16 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) IconParam$='SmallPlugin '+Version$+', <Embedded>\icon.ico, 0' PluginSet("PlugIn","IconParam$") PluginRun("PlugIn","TrayIconParam") устанавливает выбранную иконку icon.ico для трея (рядом с часами)
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 23:18 | Сообщение # 17 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, ну да. А вот то что выше, видно можно и без него обойтись... Добавлено (01 Декабрь 2009, 23:18) --------------------------------------------- Блин... Че за баги!? Визуализация не пашет когда используеш этот плагин.
|
|
| |
DEMBEL | Дата: Вторник, 01 Декабря 2009, 23:19 | Сообщение # 18 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) А вот то что выше, видно можно и без него обойтись... там это к делу не относитсяQuote (Mad-Dog) Визуализация не пашет когда используеш этот плагин. че за визуализация?
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Вторник, 01 Декабря 2009, 23:27 | Сообщение # 19 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, ну визуализация. Когда играет музыка в объекте "AudioVisualization" под тембр музыки прыгают всякие стрелочки...
|
|
| |
DEMBEL | Дата: Среда, 02 Декабря 2009, 00:19 | Сообщение # 20 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| ну странно, надо бы проверить. либо действительно не работает, либо чтото не так состряпал ты...
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
YURIY | Дата: Среда, 02 Декабря 2009, 01:27 | Сообщение # 21 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Mad-Dog) Визуализация не пашет когда используеш этот плагин. Скачай с сайта новую версию. Баг исправлен.
Вечная память Андрею Сергееву!
|
|
| |
Alex3A | Дата: Среда, 02 Декабря 2009, 01:58 | Сообщение # 22 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (Mad-Dog) Я не совсем понял что тут написано и для чего оно... Но я думаю что если оставить последние 4 строчки то все будет нормально? Дело не в количестве строк и не в строках, дело в их понимании, каждую можно перевести на человеческий язык, только тогда поймеш что ты делаеш.
|
|
| |
Sam726 | Дата: Среда, 02 Декабря 2009, 02:38 | Сообщение # 23 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Alex3A, ну а я не смог их перевести, я так и не понял для чего они надо... Добавлено (02 Декабрь 2009, 02:38) --------------------------------------------- YURIY, Quote Скачай с сайта новую версию. Баг исправлен. новую версию ЧЕГО ИМЕННО???
|
|
| |
YURIY | Дата: Среда, 02 Декабря 2009, 02:40 | Сообщение # 24 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Mad-Dog, за что отвечает функция WinVer()? Добавлено (02 Декабрь 2009, 02:40) ---------------------------------------------
Quote (Mad-Dog) новую версию ЧЕГО ИМЕННО??? Своего проекта. На официальном сайте SmallPlugin выложили. Вот что я тебе ещё мог ответить, а?
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Среда, 02 Декабря 2009, 02:48 | Сообщение # 25 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Так там два файла? Кидать только SmallPlugin.dll?
|
|
| |
YURIY | Дата: Среда, 02 Декабря 2009, 02:49 | Сообщение # 26 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Да, внедряй его, старый удали.
Вечная память Андрею Сергееву!
|
|
| |
DEMBEL | Дата: Среда, 02 Декабря 2009, 02:49 | Сообщение # 27 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| да. спокойно... я спокоен, я спокоен...
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Среда, 02 Декабря 2009, 02:57 | Сообщение # 28 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Работает!!! Добавлено (02 Декабрь 2009, 02:57) --------------------------------------------- YURIY, Quote WinVer() возвращает основной разряд (major), младший разряд (minor) и разряд сборки (build) версии Windows Ток я не вехал причем тут это?
|
|
| |
YURIY | Дата: Среда, 02 Декабря 2009, 04:06 | Сообщение # 29 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Ну подумай, ёлки-палки. Значит, какой-то функционал работает в одной винде так, а в другой - иначе. Вот автор плагина и проверяет версию Windows, а затем отсылает её своему детищу.
Вечная память Андрею Сергееву!
|
|
| |
Alex3A | Дата: Среда, 02 Декабря 2009, 04:24 | Сообщение # 30 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Win$=WinVer()+'.' определение версии винды, очевидно для плагина надо знать ее. If (VAL(GetArrayItem(Win$,'.',1))>=6).... в зависимости от версии устанавливаются две переменные NT6 и iOffset=1, зачем они тебе не знаю. IconParam$...загоняеш в переменную строку 'SmallPlugin '+версия виды+', путь к иконке, 0 передаеш эту строку в плагин -PluginSet("..., и выполняеш функцию плагина TrayIconParam - PluginRun(".. затем выполняеш скрипт в проекте с именемtray_menu_constructor- RunScript("tray.., который должен быть у тебя где то в проекте, если он конечно тебе нужен Добавлено (02 Декабрь 2009, 04:24) --------------------------------------------- Вот только не знаю, зачем в плагин передавать версию винды, он ее и сам определять далжен, да и мена функций длинноваты, неудобно как то.
|
|
| |