Иконки пользовательских команд в главном меню
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
вот мои все нужные файлы
Проверил сейчас, что будет при добавлении очередной подобной команды.
Удивительно, но она нормально продолжила нумерацию со следующего номера (у меня 10021)...
Почему первая команда с "cd ..." стоит особняком? Похоже баг в ТС.
Проверил ещё: порядок пунктов в usercmd.ini не влияет.
===============
Ещё заметил особенность (баг), вроде бы не слышал об этом нигде.
Когда назначаешь иконки для меню Запуск (номера 700 и 701+), игнорируются пункты, в которых используются em-команды... Я так понимаю, эта особенность сложилась исторически — не для em-команд создан Запуск. Но раз уж сейчас их можно туда поместить, то и в нумерации они должны участвовать наравне с остальными.
Проверил сейчас, что будет при добавлении очередной подобной команды.
Удивительно, но она нормально продолжила нумерацию со следующего номера (у меня 10021)...
Почему первая команда с "cd ..." стоит особняком? Похоже баг в ТС.
Проверил ещё: порядок пунктов в usercmd.ini не влияет.
===============
Ещё заметил особенность (баг), вроде бы не слышал об этом нигде.
Когда назначаешь иконки для меню Запуск (номера 700 и 701+), игнорируются пункты, в которых используются em-команды... Я так понимаю, эта особенность сложилась исторически — не для em-команд создан Запуск. Но раз уж сейчас их можно туда поместить, то и в нумерации они должны участвовать наравне с остальными.
Не до конца понял твою проблему, всё работает, команды вообще не влияют на значок
mnu
inc
все значки встают ровно?
если значок не отображается, либо его нет в библиотеке или ошибка, связанная с невнимательностью
Если я что-то недопонял в вопросе - поясни
mnu
Код: Выделить всё
POPUP "&Файл"
MENUITEM "-------------------------------", em_GoToVirtualPanel
POPUP "Запуск программ с приоритетом"
MENUITEM "-------Низким", em_Start_Low
MENUITEM "-------Ниже среднего", em_Start_Below
MENUITEM "-------Выше среднего", em_Start_AboveNormal
MENUITEM "-------Высоким", em_Start_High
MENUITEM "-------Реального времени", em_Start_RealTime
END_POPUP
END_POPUPКод: Выделить всё
// mappings internal command -> icon index;
[mappings];
10000=200
10001=0
10002=1
10003=2
10004=3
10005=4если значок не отображается, либо его нет в библиотеке или ошибка, связанная с невнимательностью
Если я что-то недопонял в вопросе - поясни
Andrey_A
Очень умно поместить em_GoToVirtualPanel первым пунктом! А помести последним
Что получим?
А баг меню Запуск подтверждаешь?
Код: Выделить всё
10000=0
10001=1
10002=2
10003=3
10004=4
10005=200А баг меню Запуск подтверждаешь?
Мне всё равно куда ставить команду. У меня всё отображается

или я опять чего-то недопонял?
==========================================
Дописываю
Во первых ты послал не все файлы
Мне пришлось копировать
TOTALCMD.EXE
TOTALCMD.INC
и
в папку Language
Wcmd_Rus.lng
переименовать меню в Wcmd_rus.mnu
после этого запустилось
Может у тебя тоже не хватает каких-то файлов?

или я опять чего-то недопонял?
==========================================
Дописываю
Во первых ты послал не все файлы
Мне пришлось копировать
TOTALCMD.EXE
TOTALCMD.INC
и
в папку Language
Wcmd_Rus.lng
переименовать меню в Wcmd_rus.mnu
после этого запустилось
Может у тебя тоже не хватает каких-то файлов?
Последний раз редактировалось Andrey_A Сб сен 10, 2011 16:19, всего редактировалось 1 раз.
Ну, во-первых, на твоём скрине неправильная иконка для "Перейти во Временную папку".
Во-вторых, вот в твоём посте указано отличное меню для эксперимента. Только перемести "MENUITEM "-------------------------------", em_GoToVirtualPanel" куда-нибудь ниже, и внеси ожидаемые изменения в INC, как я пишу в следующем посте. И получишь неправильное назначение иконки.
То есть "MENUITEM "-------Низким", em_Start_Low" не получит иконку, присвоенную в INC под номером 10000.
Во-вторых, вот в твоём посте указано отличное меню для эксперимента. Только перемести "MENUITEM "-------------------------------", em_GoToVirtualPanel" куда-нибудь ниже, и внеси ожидаемые изменения в INC, как я пишу в следующем посте. И получишь неправильное назначение иконки.
То есть "MENUITEM "-------Низким", em_Start_Low" не получит иконку, присвоенную в INC под номером 10000.
Andrey_A
Скачай снова мои файлики (500 КиБ).
И обрати внимание, что команде em_GoToVirtualPanel присвоен номер 10000, хотя пункт с ней не то что первый, а вообще в четвёртом подменю!
Баг проявляется только тогда, когда в em-команде "cd ...". И проявляется только на первый такой em-пункт.
Кстати, на то что это именно баг ТС, указывает и то, что в Ultra TC Editors иконки съезжают, потому что тот ожидает, что 10000 получит действительно первый встреченный em-пункт.
Скачай снова мои файлики (500 КиБ).
И обрати внимание, что команде em_GoToVirtualPanel присвоен номер 10000, хотя пункт с ней не то что первый, а вообще в четвёртом подменю!
Баг проявляется только тогда, когда в em-команде "cd ...". И проявляется только на первый такой em-пункт.
Кстати, на то что это именно баг ТС, указывает и то, что в Ultra TC Editors иконки съезжают, потому что тот ожидает, что 10000 получит действительно первый встреченный em-пункт.
ты просто перепутал порядок, вот как надо
Код: Выделить всё
begin 644 WCMICONS.ZIP
M4$L#!!0``@`(`)V5*C^U.!JF$@0``$(*```,````5T--24-/3E,N24Y#155+
M;ATW$%Q;@.XP!TC@:3:_,)B+!%D(MA$(B&3#R2(WS#6$P`*,E^@]65X&2%+5
MW3.SJAJRV2QVDS6O7R]W-Q\_WM[__.MR>__;^T_W-[\L;S_<W=W<OUN^_V&Y
M??OA'A/OWO_^YOKJQRWT)WS4,5.]OFKK+.GZ2M9U)B'*5$*:F:#3)O-,AC6P
M.8I,,4Q3N$H0SF6"^`),,@W2K`2=G9!G(Y0Y`+I.68$A1T)/"CW)]237DUQ/
M"CTI]*30DT)/"CTI]*30DUQ/<CW)]237DUQ/"CTI]*30HZ%'78^Z'G4]&GIT
M+3/9;(UOUZ6A2T.7ABX-7>JZU'6IZU+7I:Y+0U=N;6HF]L#AV-=`"4R!.DLE
MYO@N@34P\O7(UR/?B'PC\HW(-R+/B#PC\HS(,_H40\]34#<AR,R-B#1*1)I.
MQ+8K$>&,8Z4:!U"JPD"4JC"/^#Y%^JR<1\ET$-$(^];XSO%=IC!A:C,;]A@?
M,Z,5!?7,S*_(0V&:9J]$Y"G$'%ABOL9WF\W61[Z\3H.0DT-.#CDYY!24@>D+
MST?4V3A?QFP\5EUG93VJS,KQBJO`^*JS,KYFK+=`G*M2""ZF<$5#1JQX4YK:
M`$BVD2JXNHB\OAIH0JY$W+M&Q+WKQ#)K(M99E8C[.H@H<N9*V`(:YOZ0)_<%
M*18,4BT;2+,8>[6XX<6(6D/Q?L5."H**5B-HB<6@ETX2]'4CLHV@CK8*?6UN
M`'66U4BSJP/2-S)B%9OJ)$<PVA<$RRTA&ABD!T$+?2\T+4;R1K9-<]M(=T)O
MD^X,9^YB#/7U(;2@FP/Q'G;WI.IR!0>0;CZ$FEIM<C0H59#&J8':6/:!VO`!
M@]!$U!CNJAC)LUOA84\RNUD/.A"DS6X>A6YR.Z7'5[,A!!NARS:S'(PT<QLL
M;^8^:&`1(WF;*CYE'NB>E#:B&_'[KK3"(#4(+T(R@BU\!+T5(]LJV5;)MHJG
MMAA6V8D:@<?P3HK=TT*#H4\7.DP0W4C>2-E(W4C;2#>"Y_/E='XZ?5G^?GSZ
M=_GCX?+MZXD_2>]/6^75?#6&!;[\LUR>SU]?SLOE\?GQ\NWEX:_E<G[^[_/Y
M]-WRY_EE.3V<EJ>'S^=X2/R#K*M3F:,[2SO3G>6=E9U5//NZ.,?]D4C4#SKP
M@QA&\?"W4?KI1M-!]8C-QV@Y:#UH.V*QVW`S$.PV?!075,('V*P1%+LUCV7#
MFCL&WT7+3K%;<T/!R]@JP[?!&TF*W5HDPV[-=^-_,`Q)^0(]&=Q;5J\4#%QB
M,.^,C]"SP@=VVK;JP@HVQG.Y5MA"#&8>R]?`WV5X4KB%##]`WCN6:<]!ZSX(
M6UW#1-FP&,56XH<J^U;EZ%<Y^E7TH$>_"O8:07FJR,#-_`1E/Q9^,]&MNF]5
M_1+^#U!+`0(4`!0``@`(`)V5*C^U.!JF$@0``$(*```,````````````(```
G``````!70TU)0T].4RY)3D-02P4&``````$``0`Z````/`0`````
`
end
sum -r/size 13369/1164
Так-так, вот где собака зарылась!
Сейчас решил убрать из TWinKey из автозапуска строчку "em_GoToVirtualPanel|cm_GotoPreviousDir", и действительно, нумерация пунктов меню стала нормальной, как у тебя и получалась.
Получается, автозапуск (по крайней мере через TWinKey) влияет на меню, если использовать em-команды! Сейчас отпишем автору, что скажет...
Ну вполне логично так-то. Em-команды нумеруются вообще при первом упоминании. Порядок обхода мне не известен (наверняка бета-тестеры знают этот нюанс), но очевидно одно: подгрузка wdx-плагинов, а значит и автозапуск TWinKey, происходят ДО обработки меню. Потому-то em_GoToVirtualPanel законно получил номер 10000.
Причем нет смысла создавать дополнительную команду вроде em_GoToVirtualPanel_Menu для использования только в меню, потому что номер 10000 всё равно оттяпает em_GoToVirtualPanel.
Ну что ж. Особенность поведения ТС отмечена, хорошее дополнение к теме.
Сейчас решил убрать из TWinKey из автозапуска строчку "em_GoToVirtualPanel|cm_GotoPreviousDir", и действительно, нумерация пунктов меню стала нормальной, как у тебя и получалась.
Получается, автозапуск (по крайней мере через TWinKey) влияет на меню, если использовать em-команды! Сейчас отпишем автору, что скажет...
Ну вполне логично так-то. Em-команды нумеруются вообще при первом упоминании. Порядок обхода мне не известен (наверняка бета-тестеры знают этот нюанс), но очевидно одно: подгрузка wdx-плагинов, а значит и автозапуск TWinKey, происходят ДО обработки меню. Потому-то em_GoToVirtualPanel законно получил номер 10000.
Причем нет смысла создавать дополнительную команду вроде em_GoToVirtualPanel_Menu для использования только в меню, потому что номер 10000 всё равно оттяпает em_GoToVirtualPanel.
Ну что ж. Особенность поведения ТС отмечена, хорошее дополнение к теме.
Andrey_A
Да нет! Всё уже понятно, причина выяснена. TWinKey (да и наверняка Autorun) при вызове em-команды заставит ТС пронумеровать её ДО начала нумерации меню... То есть если написать в автозапуске штук 5 em-команд, то нумерация в меню начнётся с 10005 вообще!
Просто теперь мы знаем этот нюанс. Хотя вряд ли кто-то ещё с этим столкнётся
Да нет! Всё уже понятно, причина выяснена. TWinKey (да и наверняка Autorun) при вызове em-команды заставит ТС пронумеровать её ДО начала нумерации меню... То есть если написать в автозапуске штук 5 em-команд, то нумерация в меню начнётся с 10005 вообще!
Просто теперь мы знаем этот нюанс. Хотя вряд ли кто-то ещё с этим столкнётся
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Вопрос следующий.
Влияет ли размер или содержимое файла Wcmicons.dll на быстродействие Тотала?
Для главного меню нужны только иконки 16х16, для панелей инструментов - нужны разные размеры начиная от 48х48 и ниже, сами иконки при этом такие же самые.
Как поступить более оптимально в плане скорости работы - запихнуть все иконки в единый файл Wcmicons.dll или же создать файл Wcmicons.dll с иконками только 16х16, а для панелей создать отдельный icl-файл со всеми необходимыми размерами иконок?
Влияет ли размер или содержимое файла Wcmicons.dll на быстродействие Тотала?
Для главного меню нужны только иконки 16х16, для панелей инструментов - нужны разные размеры начиная от 48х48 и ниже, сами иконки при этом такие же самые.
Как поступить более оптимально в плане скорости работы - запихнуть все иконки в единый файл Wcmicons.dll или же создать файл Wcmicons.dll с иконками только 16х16, а для панелей создать отдельный icl-файл со всеми необходимыми размерами иконок?
Если у кого-то не получается найти причину, почему иконки идут не в том порядке, как задумано, то бывает и так.
У меня было, что мистическим образом (я думал глюк или особенность Total Commander) в меню "Справка" после определённого пункта (примерно пункт Горячие клавиши) и/или разделителя рядом с ним у меня иконки начинали идти как-то не так, постоянно приходилось колдовать, вручную устанавливать номера иконок после этого пункта. Происходило это каждый раз при правке меню, добавлении/удалении своих иконок, пунктов, я уж думал, что так и буду мучиться, пока не нашёл причину. Причина оказалась в следующем - в .mnu файле стояла повторяющаяся команда. И стояла она как раз в том месте, где был тот пункт меню, после которого шла магия. А дубль этой команды у меня был в меню "Команды". Удалив одну из повторяющихся команд, пункты меню "Справка" выстроились правильно.
А ещё может быть так. TC выдаёт ошибку, что файл .mnu составлен неправильно, если у каждого пункта меню нет своей команды. Я думал, что если поставить в .mnu файле команды-заглушки с именами "em_", то это прокатит, но... Какое-то время на фоне остальных ошибок, это толи компенсировалось чем-то, толи не влияло. Но, когда я стал исправлять все ошибки, то оказалось, что и это непрвильно. Правильно, чтобы команды называлиь по разному, т.е. em_1, em_2, em_3... А самих команд кстати может и не быть в .ini файлах с командами, т.е. можно указывать несуществующие команды, главное, чтобы они не повторялись. Когда у меня ещё не было иконок, у меня было несколько команд-заглушек "em_" в .mnu файле и всё было нормально, пункты меню шли как надо, TC не выдавал ошибку. Но, когда начал выставлять иконки, то обнаружилась такая особенность. Так что в файле .mnu пришлось прибраться и очень основательно.
У меня было, что мистическим образом (я думал глюк или особенность Total Commander) в меню "Справка" после определённого пункта (примерно пункт Горячие клавиши) и/или разделителя рядом с ним у меня иконки начинали идти как-то не так, постоянно приходилось колдовать, вручную устанавливать номера иконок после этого пункта. Происходило это каждый раз при правке меню, добавлении/удалении своих иконок, пунктов, я уж думал, что так и буду мучиться, пока не нашёл причину. Причина оказалась в следующем - в .mnu файле стояла повторяющаяся команда. И стояла она как раз в том месте, где был тот пункт меню, после которого шла магия. А дубль этой команды у меня был в меню "Команды". Удалив одну из повторяющихся команд, пункты меню "Справка" выстроились правильно.
А ещё может быть так. TC выдаёт ошибку, что файл .mnu составлен неправильно, если у каждого пункта меню нет своей команды. Я думал, что если поставить в .mnu файле команды-заглушки с именами "em_", то это прокатит, но... Какое-то время на фоне остальных ошибок, это толи компенсировалось чем-то, толи не влияло. Но, когда я стал исправлять все ошибки, то оказалось, что и это непрвильно. Правильно, чтобы команды называлиь по разному, т.е. em_1, em_2, em_3... А самих команд кстати может и не быть в .ini файлах с командами, т.е. можно указывать несуществующие команды, главное, чтобы они не повторялись. Когда у меня ещё не было иконок, у меня было несколько команд-заглушек "em_" в .mnu файле и всё было нормально, пункты меню шли как надо, TC не выдавал ошибку. Но, когда начал выставлять иконки, то обнаружилась такая особенность. Так что в файле .mnu пришлось прибраться и очень основательно.
Hedin
Раз уж вы зачем-то решили поднять эту старинную тему, следует кое-что уточнить. Значки пользовательских команд после правки главного меню могут оказаться другими, потому что коды таких команд жёстко определяются порядком их следования в нём. Изменение этого порядка вручную (добавление, удаление, перестановка) приведёт к изменению кодов команд ниже места правки, а значит и перемещению сопоставленных прежним кодам значков в другие пункты. Это давно известно и прямым текстом сказано на первой же странице темы. Первая ваша проблема — отсюда же, вторая на самом деле не имеет к значкам отношения. Дублирование em-команды в меню само по себе отображению значков не мешает, если правильно прописывать вручную соответствия. (Хотя в норме никакие дубли там просто не нужны.) А одноимённых em-команд в totalcmd.inc быть вообще не должно безотносительно к значкам. (Через диалог "Выбор команды" вы их и создать не сможете.)
И пользуюсь случаем заметить, что цивилизованная правка главного меню с корректным автоматическим переназначением значков пользовательским командам, не требующим никаких дополнительных усилий, организована в Main Menu Editor из пакета Ultra TC Editors 6.40 и выше, если все изменения меню совершаются в самой программе. Кстати, там особо отмечаются команды, уже имеющиеся в меню, что снижает вероятность добавить их туда по второму разу. И дубли юзер-команд вы там при всём желании не создадите, будет автопереименование по счётчику. И даже коды входящих в меню пользовательских команд (для INC-файла) после некоторого изменения настроек отображать можно. Читайте русскую справку пакета, там всё написано.
Кстати, заодно уж: высказаное когда-то на этой же странице мнение, что автозапуск какой-то em-команды через специальный WDX-плагин якобы сбивает коды содержащихся в меню юзер-команд, практикой не подтверждается. (С помощью TWinKey и Main Menu Editor это проверяется элементарно.)
Раз уж вы зачем-то решили поднять эту старинную тему, следует кое-что уточнить. Значки пользовательских команд после правки главного меню могут оказаться другими, потому что коды таких команд жёстко определяются порядком их следования в нём. Изменение этого порядка вручную (добавление, удаление, перестановка) приведёт к изменению кодов команд ниже места правки, а значит и перемещению сопоставленных прежним кодам значков в другие пункты. Это давно известно и прямым текстом сказано на первой же странице темы. Первая ваша проблема — отсюда же, вторая на самом деле не имеет к значкам отношения. Дублирование em-команды в меню само по себе отображению значков не мешает, если правильно прописывать вручную соответствия. (Хотя в норме никакие дубли там просто не нужны.) А одноимённых em-команд в totalcmd.inc быть вообще не должно безотносительно к значкам. (Через диалог "Выбор команды" вы их и создать не сможете.)
И пользуюсь случаем заметить, что цивилизованная правка главного меню с корректным автоматическим переназначением значков пользовательским командам, не требующим никаких дополнительных усилий, организована в Main Menu Editor из пакета Ultra TC Editors 6.40 и выше, если все изменения меню совершаются в самой программе. Кстати, там особо отмечаются команды, уже имеющиеся в меню, что снижает вероятность добавить их туда по второму разу. И дубли юзер-команд вы там при всём желании не создадите, будет автопереименование по счётчику. И даже коды входящих в меню пользовательских команд (для INC-файла) после некоторого изменения настроек отображать можно. Читайте русскую справку пакета, там всё написано.
Кстати, заодно уж: высказаное когда-то на этой же странице мнение, что автозапуск какой-то em-команды через специальный WDX-плагин якобы сбивает коды содержащихся в меню юзер-команд, практикой не подтверждается. (С помощью TWinKey и Main Menu Editor это проверяется элементарно.)
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.