Сообщество программистов Autodesk в СНГ

ADN Club => Адаптация AutoCAD и вертикальных приложений => Тема начата: Дмитрий Загорулькин от 16-04-2014, 17:26:21

Название: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Дмитрий Загорулькин от 16-04-2014, 17:26:21
Здравствуйте!
Подскажите, как можно поменять большое изображение кнопки (32х32) без потери качества картинки, если названия старой и новой картинки совпадают?
Проблема в том, что картинка сохраняется внутри CUIX и при простой попытке указать другую картинку с таким же именем как внешний файл, она подменяется той, которая уже есть в CUIX. А если пробовать через импорт это делать - то картинка ужимается до 16 х 16 и выглядит очень неприглядно.
Про распаковку-редактирование-запаковку CUIX я знаю, так и выкручиваюсь. Более цивилизованный способ кто-нибудь знает?
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Александр Ривилис от 16-04-2014, 18:03:56
Я вижу пару вариантов (ни один на практике не применял)
1. Удалить старую картинку из CUIX-файла (это zip-архив, так что с этим проблем быть не должно), а вместо неё туда поместить новую.
2. Через интерфейс в два этапа - сначала на картинку с другим именем и сохранить CUIX-файл, затем картинку с нужным именем, но уже новую.
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Дмитрий Загорулькин от 16-04-2014, 18:30:54
Первый способ работает - им и пользуюсь.
А второй - нет. При переназначении картинки, старая из CUIX файла не удаляется.
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Doublefish от 30-04-2014, 16:46:44
Тоже с этим мучился - если добавить сначала картинку 16х16, а потом 32х32 с тем же именем, то имеем проблему, т.к. отображается только 16х16 и не красиво. Пришлось давать разные имена картинкам на 16 и 32, т.к. через интерфейс Cuix так и не удалось добиться чтобы отображалась картинка 32х32 после обновления картинки 32х32.

Видимо остался только вариант №1.

Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: German от 02-02-2015, 17:06:22
Можно попробовать картинку через "адаптацию" удалить. У меня получилось.
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Дмитрий Загорулькин от 02-02-2015, 17:17:02
Это оно! Спасибо :)
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Алексей Кулик от 03-02-2015, 00:35:11
Дим, а ты при пересоздании cuix файлы mnr / mnc удалял?
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Дмитрий Загорулькин от 03-02-2015, 12:08:01
Нет, не удалял. Так ведь я не пересоздаю CUIX, я просто картинку внутри него меняю.
Название: Re: Как заменить большую картинку на кнопке если совпадают названия?
Отправлено: Алексей Кулик от 03-02-2015, 12:17:37
Возможно, я ошибаюсь, и мое мнение основывается на использовании ресурсных dll.
mnr / mnc - компилированные файлы ресурсов меню, их сам ACAD создает при первом обращении к файлу меню, и потом уже обращается к ним. Если эти файлы удалить, то ACAD их пересоздает и все равно обращается уже к ним. Я на эту тему рассуждал здесь: http://autolisp.ru/2011/09/23/about_corporatemenu/ и http://autolisp.ru/2013/11/19/partial-menu-loading/ (поиск по странице по слову mnr)
P.S. Сейчас вынужден работать под ACAD2009, а там cuix'a еще не было ))) Тем не менее: файлы *.mnr создаются и для 2010-2015 версий.