Тема: Как корректно загрузить и сохранить рисунок на кнопке?

Здравствуйте. Возможно эта тема уже обсуждалась на форуме но все же я задам свой вопрос. Суть проблемы в том, что когда я создаю кнопку я загружаю рисунок к кнопке заранее созданный. При перезагрузке в место рисунка вопросики(2004 Акад). Или рисунки меняются местами. Как корректно загрузить и сохранить рисунок на кнопке? За ранние спасибо.

Re: Как корректно загрузить и сохранить рисунок на кнопке?

При перезагрузке в место рисунка вопросики(2004 Акад).

Очевидно что "место" хранения ваших BMP не прописано в путях поддежки AutoCAD. Tools>Options, закладка Files, пункт Support Files Search Path.

Или рисунки меняются местами.


Наверное было сделано Save As... с тем же именем но в другое место. Воспользуйтесь стандартным поиском Windows. Дело опять же в путях поддержки. При создании кнопки AutoCAD  компилирует ваш BMP (картинку) в файл acad.mnr, причем ту которая лежит ближе к "корню". T. e. дело в том что существует "дубликат" с таким же именем.
Т. к. файл уже прокомпилирован, а как я понимаю вы не пишите самостоятельно файлы меню, а просто создаете кнопки стандартными средствами, создайте кнопку снова, избежав дублирования имени BMP файла и пропишите как сказано выше путь.

Re: Как корректно загрузить и сохранить рисунок на кнопке?

Если же я вас неправильно понял и у вас собственный *.mnu файл. Уберите "дубликаты" пропишите путь и перезагузите его. Жизнь должна наладиться...
Если вы действовали только "стандартными" средствами, боже вас упаси загрузить файл acad.mnu. Все ваши красивые кнопочки вмиг улетят и вы получите панели инструментов в их изначальном виде!!!

Re: Как корректно загрузить и сохранить рисунок на кнопке?

https://www.caduser.ru/forum/topic908.html

Re: Как корректно загрузить и сохранить рисунок на кнопке?

Самый лучший способ хранить свои "иконки" в DLL.
DLL можно сделать на любом приспособленном для этого языке программирования, к примеру на Delphi, VB, C++ и т.п.
Да точнее, здесь даже "язык" как таковой не нужен.
Последовательность такая (DELPHI-вариант):
1. В "ImageEditor" DELPHI создаем файл ресурсов (к примеру MYICONS.RES) и в него запихиваем все нужные иконки.
2. Создаем новую DLL (New->Other->DLL Wizard) с именем, совпадающим с именем нового меню AutoCAD.
3. Код DLL:

library MYMENU;
{$R *.res}
{$R MYICONS.RES}
begin
end.

4. Далее Project->Compile MYMENU и кладем DLL рядом с файлами MYMENU.MNU, MYMENU.MNS, MYMENU.MNL.
5. В файлах MNU,MNS имена иконок пишем без расширения (т.е. MYICON1, а не MYICON1.BMP).
Вот собственно и все. И вместо n-го числа иконок - всего один файл MYMENU.DLL.

Re: Как корректно загрузить и сохранить рисунок на кнопке?

"Лобовой" способ, хотя и требующий аккуратности и внимательности, зато дающий 100% результат: прописывать кнопки с *.bmp непосредственно в *.mnu.

Re: Как корректно загрузить и сохранить рисунок на кнопке?

Спасибо за советы. Их столько что пока не могу их всех переварить и попробовать. может быть вопрос покажется смешным. при загрузке своего собственного меню, акад прописывает его в фаил MNU ?
Фаил прокомпилирован- это значит что создан шаблон иконки или я чего не понимаю?

Re: Как корректно загрузить и сохранить рисунок на кнопке?

при загрузке своего собственного меню, акад прописывает его в фаил MNU ?

Это как раз и есть первый шаг при самом первом запуске АКАДа. И самый последний шаг, когда текущее меню не удается восстановить никакими другими способами, например при повреждении MNR, MNC, MNS и MNU. В общем, принцип такой: MNU - это основа основ, шаблон из которого все создается с нуля. MNS - дежурный файл, аналогичный MNU, но с изменениями, которые происходят в процессе настройки меню. MNC и MNR - компилированные файлы, с которыми АКАД непосредственно работает, причем из них можно восстановить MNS.