Как заменить большую картинку на кнопке если совпадают названия?

Автор Тема: Как заменить большую картинку на кнопке если совпадают названия?  (Прочитано 9490 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Здравствуйте!
Подскажите, как можно поменять большое изображение кнопки (32х32) без потери качества картинки, если названия старой и новой картинки совпадают?
Проблема в том, что картинка сохраняется внутри CUIX и при простой попытке указать другую картинку с таким же именем как внешний файл, она подменяется той, которая уже есть в CUIX. А если пробовать через импорт это делать - то картинка ужимается до 16 х 16 и выглядит очень неприглядно.
Про распаковку-редактирование-запаковку CUIX я знаю, так и выкручиваюсь. Более цивилизованный способ кто-нибудь знает?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я вижу пару вариантов (ни один на практике не применял)
1. Удалить старую картинку из CUIX-файла (это zip-архив, так что с этим проблем быть не должно), а вместо неё туда поместить новую.
2. Через интерфейс в два этапа - сначала на картинку с другим именем и сохранить CUIX-файл, затем картинку с нужным именем, но уже новую.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Первый способ работает - им и пользуюсь.
А второй - нет. При переназначении картинки, старая из CUIX файла не удаляется.

Оффлайн Doublefish

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Тоже с этим мучился - если добавить сначала картинку 16х16, а потом 32х32 с тем же именем, то имеем проблему, т.к. отображается только 16х16 и не красиво. Пришлось давать разные имена картинкам на 16 и 32, т.к. через интерфейс Cuix так и не удалось добиться чтобы отображалась картинка 32х32 после обновления картинки 32х32.

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


Отмечено как Решение Дмитрий Загорулькин 02-02-2015, 17:16:35

Оффлайн German

  • ADN Club
  • **
  • Сообщений: 84
  • Карма: 13
Можно попробовать картинку через "адаптацию" удалить. У меня получилось.

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Дим, а ты при пересоздании cuix файлы mnr / mnc удалял?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Дмитрий ЗагорулькинАвтор темы

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Нет, не удалял. Так ведь я не пересоздаю CUIX, я просто картинку внутри него меняю.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Возможно, я ошибаюсь, и мое мнение основывается на использовании ресурсных 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 версий.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!