Иконка на кнопке панели инструментов из em-команды

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
ApceH
Сообщения: 316
Зарегистрирован: Пт апр 08, 2011 17:58
Откуда: Димитровград

Иконка на кнопке панели инструментов из em-команды

Сообщение ApceH »

Столкнулся с проблемой. Имеется em-команда для запуска некой программы (exe-шник). На панели создаю кнопку с этой командой. При этом автоматически из em-команды TC берёт указанную там иконку (button=) и название (menu=) и присваивает их данной кнопке, т.е. записывает в BAR-файл.
Затем мне понадобилось изменить иконку и/или название в em-команде. К сожалению, на кнопку панели это никак не повлияет.
Получается, если я хочу изменять иконку/название автоматизировано, то придётся изменить и все вхождения этой em-команды в BAR-файлах (у меня некоторые кнопки дублируются). В лучшем случае, мне придётся хранить список BAR-файлов и номеров кнопок для каждой подобной em-команды.

Или я что-то не учёл, или надо репортить хотелку: чтобы если иконка/надпись в кнопке не назначена, а кнопка ссылается на em-команду, то попытаться взять иконку/надпись из em-команды. Ведь с cm-командами это выполняется в отношении надписи (хотя иконку тоже нельзя оставлять пустой).
kIT Programs PowerPack, kIT Universal Presets | Есть только одна истинная вера: чёрная магия...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Если речь о присвоении значений ключам вне стандартного диалога, то, естественно, требуется менять вхождения самостоятельно, а потом прогружать панель через OpenBar.
ApceH писал(а):у меня некоторые кнопки дублируются
Вместе с индексами? Так нельзя.
ApceH писал(а):В лучшем случае, мне придётся хранить список BAR-файлов и номеров кнопок для каждой подобной em-команды.
Зачем? Можно в цикле перебирать команды по номерам и после вставки производить замену далее идущих индексов.
ApceH писал(а):если иконка/надпись в кнопке не назначена, а кнопка ссылается на em-команду, то попытаться взять иконку/надпись из em-команды
Через диалог это так и происходит, если в данной команде эта иконка имеется и поле "Файл значка:" пустует.
Аватара пользователя
ApceH
Сообщения: 316
Зарегистрирован: Пт апр 08, 2011 17:58
Откуда: Димитровград

Сообщение ApceH »

Flasher писал(а):Вместе с индексами? Так нельзя.
:D нет конечно. Дублируются в разных панелях. У меня как бы по задачам сгруппированы панели.
Flasher писал(а):Через диалог это так и происходит, если в данной команде эта иконка имеется и поле "Файл значка:" пустует.
Да, но это надо в автоматизированном режиме. Не буду же я для каждой панели открывать редактирование, вставлять кнопку, назначать em-команду, и всё это автоматизированно. И даже если так, всё равно нужно будет хранить список, какие панели открывать и под каким номером нужная кнопка... Не вариант.

Моя мысль такова: usercmd.ini (и прочие аналогичные файлы) должны быть неким репозиторием команд, чтобы на панелях, в меню, на горячие клавиши только индекс команды задавать. Индексом и являлось бы имя em-команды. А пока к этому индексу зачем-то приходится добавлять информацию об иконке (обязательно) и названии (иначе будет имя em-команды).
kIT Programs PowerPack, kIT Universal Presets | Есть только одна истинная вера: чёрная магия...
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ApceH
В таком случае стоит использовать команды меню "Запуск" (701-899).
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Сначала запостил, а потом понял, что это не решение.

Предложение Flasher'а дельное, но у этих команд слишком много недостатков.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка писал(а):но у этих команд слишком много недостатков
С учётом требуемого недостатком прежде всего может быть ограничение по кол-ву, а так вроде бы ничего отличимого.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Ну, например, как прописать иконку? И самое главное, то, что меня в в свое время бесило и из-за чего я и отказался от cm_UserMenu - при обновлении программы перезаписывается totalcmd.inc и, следовательно, пользовательские команды.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

А зачем в панели инструментов ссылаться на условную команду, если можно явно указать то, что она подразумевает?
:lol:
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Mellomann
А затем, что "условная команда" создаётся, чтобы дальше вызываться как угодно с использованием одного и того же готового имени — хоть из командной строки, хоть клавишей, хоть кнопкой, хоть пунктом в главном меню...
Последний раз редактировалось Avada Вт авг 28, 2012 22:41, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
ApceH
Сообщения: 316
Зарегистрирован: Пт апр 08, 2011 17:58
Откуда: Димитровград

Сообщение ApceH »

Mellomann
Надо :roll:
У меня в сборке имеются заглушки для неустановленных программ. У плользователя появляется выбор: скачать и поставить эту прогу, выбрать среди уже установленных на компе или смириться.
Если пользователь указал уже установленную прогу, то заглушка меняет в usercmd.ini соответствующие ключи. Работать кнопки уже после этого начинают хорошо — запускают выбранную программу. Но иконку мне приходится менять в каждом BAR-файле. А значит приходится жёстко задать список, где и под каким номером нужная кнопка.

Изврат. Уверен, что в TC должно поддерживаться отделение содержимого команд от мест их использования в полном смысле, а не как сейчас.

P.S. Забыл пояснить, иконка может и скорее всего будет отличаться, так как для неустановленных программ изначально копируются "истощённые" иконки: полупрозрачные и чёрно-белые.

Добавлено спустя 16 минут:

:( :( :(
Впрочем, не так это и нужно. Сейчас только увидел и вспомнил, что на кнопки с командами (а не явными исполняемыми файлами) нельзя перетаскивать файлы!!!
Получается для моей цели нужно тупо пробежаться по BAR-ам и внести нужные изменения. Использовать em-команды получается нет смысла... Сейчас сформулирую 2 хотелки в соответствующей теме.
kIT Programs PowerPack, kIT Universal Presets | Есть только одна истинная вера: чёрная магия...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ApceH писал(а):Но иконку мне приходится менять в каждом BAR-файле. А значит приходится жёстко задать список, где и под каким номером нужная кнопка.
Когда-то меня НАЗАРЕТ спрашивал, как можно это сделать мягче. Моё предложение, которым я пользуюсь, было следующим: менять не значения в Bar-ах, а переименовывать соотв. 2 файла иконок/библиотек по простой схеме:
Имя.ico > Имя2.ico, Имя1 > Имя.ico, Имя2.ico > Имя1.ico
Это даёт возможность менять вид иконки постоянно. Использовать можно в т.ч. при переключении тех или иных режимов, включая инверсные.
Ответить