Страница 1 из 2
Ограничения на число пунктов в главном меню
Добавлено: Чт апр 22, 2010 02:34
Andrey_A
Сегодня добавляя новые строки в главное меню Wcmd_Rus.mnu столкнулся с тем, что стала выдаваться ошибка последней команды в меню
. Я всё проверил - ошибок нет. Добавив ещё одну строку в середину меню - стали выдаваться теперь уже две ошибки: двух нижних команд. Стало ясно, что и тут есть ограничение. Очень жаль, а так многое ещё хотелось сделать. Соответственно появились вопросы:
1. Где-нибудь прописано сколько может быть строк в главном меню (MENUITEM "...", em...)?
2. Если есть ограничение, то можно ли цифру строк как-то увеличить?
3. Сейчас в тестировании находится Тотал 7.55, есть ли возможность у кого-нибудь попросить автора в новую версии убрать или отодвинуть ограничение (если таковое есть)
Я понимаю, что Тотал не резиновый, но всё же очень, очень хочется...
Добавлено: Чт апр 22, 2010 07:27
Avada
Andrey_A
Сколько в байтах/килобайтах сейчас весит файл меню?
И, кстати, можно ли взглянуть на это меню? А то я тут обнаружил, что в моём текущем расширенном меню с добавленными em-командами всего-то 459 строк. Видимо, чего-то в жизни не понимаю...

Добавлено: Чт апр 22, 2010 09:07
MVV
Да не, тут вряд ли дело из-за размера - я сейчас создал файл на 512 килобайт (13500 строк, не думаю, что извращенцы могут сделать больше

), и ТК грузит его без проблем. Правда, потом ни один пункт меню не открывается.

А, не, перезапустил ТК - и открывается. Кстати, ощущение, что в ТК глюк - мое гиперменю работает только после перезапуска ТК (видимо, при этом ТК создает меню с нуля, а не чистит имеющееся).
А вот с глубиной вложенности подменю есть ограничения - заметил, что больше 10 ТК не дает сделать (я вкладывал меню в само себя, чтобы увеличить размер файла). Но при этом ТК писал "Синтаксическая ошибка в строке 734 файла меню: POPUP", я убрал последнее подменю, и ошибка ушла.
Возможно, в твоем файле меню все-таки действительно какая-то ошибка? Выложи его куда-нибудь.
Добавлено: Чт апр 22, 2010 11:30
Andrey_A
Прочитав пост
MVV сделал всё что он писал и провёл эксперимент: Увеличил псевдо-меню до 15000 строк - тотал работает (значит дело не в размере)
Но в моём меню выдаются ошибки при 3400 строк.
Стал искать ошибку
1. Поочереди вставлял - секции меню (Файл, Выделить...) - все секции работают поотдельности - вместе нет (ошибка трёх последних пользовательских строк )!!!
2. Стал грешить на значки - очистил файл WCMICONS.INC - ошибки остались
3. Думал что проблема в командах - очистил - тоже самое
4. Поставил на "чистый тотал" - тоже самое
Выкладываю меню, протестируйте пожалуйста, если не трудно, ведь со стороны виднее:
http://depositfiles.com/files/y5kxdyxho
Добавлено: Чт апр 22, 2010 12:44
Avada
Andrey_A
Хорошо бы ещё актуальный файл usercmd.ini выложить.
Добавлено: Чт апр 22, 2010 14:13
Andrey_A
Файла usercmd.ini у меня нет, есть Wcmd_Rus.ini - выкладываю
http://depositfiles.com/files/v197zzwqy
Но думаю, что это не поможет, я вообще перемещал, делал пустым этот файл, а ошибка оставалась.
Добавлено: Чт апр 22, 2010 15:03
Avada
Andrey_A
Спасибо, посмотрю. Просто желательно исключить ругань на недоступные команды. К тому же мне просто интересно.
Кстати,
здесь уже дискутировалась целесообразность использования
Wcmd_Rus.ini вместо стандартного
Usercmd.ini. Вопрос тот же: зачем?
Добавлено: Чт апр 22, 2010 15:59
MVV
Действительно странно. Закомментировал строчки, на которые ТК ругался, все работает нормально. Что интересно, ругается только на некоторые команды, другие прекрасно работают и описываются ниже и выше ошибочных строк. Ругается на строчки с командами em_and_1105, em_and_3170, em_and_2591, em_and_1128, em_and_142, em_and_3230, em_and_2169 и em_and_118, но не ругается на строчки с тремя тыщами других команд, расположенных как выше, так и ниже этих... При этом ТК прекрасно отображает команды, на которые ругался, в командном браузере - значит, видит и грузит... Кроме того, в меню работает команда em_and_3234 из самого конца файла - значит, размер INI-файла не слишком велик для системы.
Ну а вообще, конечно, мне искренне жаль того, кто вынужден пользоваться таким меню, в котором мало того что часто используемые команды засунуты в подменю второго-третьего уровней, так еще и пунктов меню столько, что пока найдешь нужный... И уверен на 100%, что из этих трех тыщ команд минимум 2500 не будут использоваться вообще, разве что, быть может, раз в месяц, а некоторые - вообще единожды после установки системы (em_and_3232, например).
И еще вопрос по em_and_3234 (чисто бросилось в глаза, просмотреть остальные три тыщи команд у меня терпения не хватит) - для запуска новой копии ТК всю жизнь использовался параметр "/N", так зачем ТК запускается с параметром "/prefetch:1"? Разве это поддерживаемый параметр? И вообще, смотрю, он много где встречается - какой в нем смысл?
Добавлено: Чт апр 22, 2010 16:55
Andrey_A
Последнее, что я редактировал перед тем, как произошла ошибка - это секция Архивы. Если её убрать и вставить кучу других любых пунктов меню оно продолжает работать. (Хоя ещё вчера вся эта секция прекрасно работала - она была в другом месте и один в один перенесена сюда). Тестирую дальше, но видно, что это какой-то глюк. Ругается тотал не на последние команды, а на что-то в секции Архивы (мне так показалось)
Ну а вообще, конечно, мне искренне жаль того, кто вынужден пользоваться таким меню...что пока найдешь нужный...
Дело привычки, любой пункт, программу... я нахожу за секунду, тем более каждой присвоен ещё и значок. Да действительно не все команды я использую ежедневно, еженедельно, но всё же легче и быстрее найти нужное в этом Тотале (когда понадобится, а таких случаев немало), чем тратить на это время на поиск по всему компу или в интернете... Пусть одноразовая прога (команда), а экономит кучу времени...
...prefetch:1"?
Я не программист и многое познаю через ошибки, в своё время где-то прочитал, что он позволяет быстрее запучкать программы, вот и понаставил везде где нужно и не нужно, а убрать забыл
Ну, это всё лирика, главное непонятный глюк
Добавлено: Чт апр 22, 2010 20:04
Andrey_A
Наконец-то я понял и с уверенностью могу сказать, что меню может поддерживать только
2000 пользовательских команд. Запутанность была в том что у меня цифры команд не по порядку, а кусками и меню перемешано с командами Тотала
Когда мы проверяли с
MVV 15000 строк в меню - мы добавляли одинаковые куски (просто копировали одно и тоже)
В Excele сделал набор команд по порядку и добавил
Код: Выделить всё
POPUP "Проверка"
MENUITEM "Строка", em_1
MENUITEM "Строка", em_2
MENUITEM "Строка", em_3
...
MENUITEM "Строка", em_2005
END_POPUP
с команды em_2001 начинаются выдаваться ошибки...
Связи с этим я возвращаюсь к первому в теме тексту Пункт 3
Если есть возможность у кого-нибудь попросить автора в новую версии убрать или отодвинуть ограничение!
Ограничения главного меню
Добавлено: Чт окт 17, 2013 19:51
LonerD
Подскажите, в чём состоит ограничение на количество пунктов в главном меню или на размер файла меню или какие есть ограничения?
После преодоления некоего порога начинаются перманентные глюки, команды не отрабатывают, причём не только команды в меню, а в целом - на панели инструментов, на хоткеях...
Добавлено: Чт окт 17, 2013 20:00
Avada
LonerD
А какие-то цифры, позволяющие оценить этот "некий порог", всё-таки назвать можно?
Добавлено: Чт окт 17, 2013 20:04
LonerD
Avada писал(а):А какие-то цифры, позволяющие оценить этот "некий порог", всё-таки назвать можно?
Вроде этот вопрос где-то обсуждался, и у меня в голове отложилась цифра "не более 2000 em-команд". На самом деле, видимо, что-то перепутал, хотя цифры близкие к этому получаются.
Сейчас подсчитал - у меня в меню 1937 em-команд + 152 cm-команд, файл меню - около 150 Кб. Глюки в наличии. Убрал часть пунктов меню - некоторые команды заработали, а некоторые нет (закономерности каким образом отваливаются команды не могу уловить - не по алфавиту, не по расположению в файле пользовательских команд, не по расположению в меню или на панелях...)
Сократил количество еm-команд в меню до 1912 (+ 152 cm-команд так и остались) - вроде бы всё работает (вроде-бы, потому как физически сложно проверять все пользовательские команды, да и бесполезно, - может ограничения на самом деле в размере файла, суммарном количестве символов в именах пунктов или в названиях команд или вообще в чём-то другом).
Добавлено: Чт окт 17, 2013 20:27
MVV
Вопрос, на хрена иметь полторы тыщи EM-команд, как всегда остается за кадром...
В таком числе команд, по-моему, найти нужную - проблема куда серьезнее, чем то, что часть не работает. А ещё в том, сколько из них за месяц вызываются... Если команда вызывается раз в жизни - бессмысленно оформлять её. Да и загрузка такого файла меню наверняка ощутимое время занимает... На хоткеи тоже полторы тыщи команд не повесишь, т.е. иметь столько EM-команд бессмысленно.
Разумнее было бы оформить их в виде выпадающих тулбаров - и число неограничено, и иконки любые, и описания тут же.
Добавлено: Чт окт 17, 2013 21:23
LonerD
MVV писал(а):Вопрос, на хрена иметь полторы тыщи EM-команд, как всегда остается за кадром...
Да, это вопрос риторический.
И EM-команд на самом деле около 3000

(часть используется на панели инструментов, часть - вынесена в контекстные меню). Найти нужную было проблемой на стадии формирования меню, сейчас уже всё рассортировано и находится очень легко.
Вынести ещё часть команд в контекстные меню (TcMenuPopup, TcMenu, Menuimg и прочими средствами) - тоже можно. Но хотелось бы знать предел меню, чтобы случайно его не превысить.
MVV писал(а):Да и загрузка такого файла меню наверняка ощутимое время занимает...
Как правило, Тотал выступает в качестве оболочки и загружается один-два раза в день, так что не особо ощутимо (дома компьютер включён, Тотал и по нескольку дней висит загруженным). От мощности компьютера скорость тоже не сильно зависит (на глаз не ощущается).
MVV писал(а):На хоткеи тоже полторы тыщи команд не повесишь
Если постараться и сделать переключающиеся комбинации хоткеев (на форуме уже предлагалось такое решение) - то в принципе можно. Хотя я ограничился пятью сотнями.
MVV писал(а):Разумнее было бы оформить их в виде выпадающих тулбаров - и число неограничено, и иконки любые, и описания тут же.
А вот на тулбарах я сосредоточил именно те команды, которые вызываются регулярно