| 
| 
 | Вопрос # 2 061/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты! У меня есть несколько картинок. В программе к ним есть путь. Но мне надо чтобы пользователь не смог их изменять. Можно ли эти картинки поместить в dll. Если можно, то как их поместить, и как их потом использовать в программе. 
|  |   Вопрос задал: Денис (статус: Посетитель)Вопрос отправлен: 7 ноября 2008, 20:17
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Ученый Здравствуйте, Денис!  Не знаю как в dll, но могу вам предложить другой вариант вариант. На этом сайте есть исходник программы, показывающей, как упаковать разные данные в exe-файл программы (курсоры, звуки, изображения, тексты). Зарузить ее можно здесь: https://www.delphi-int.ru/download/file/334/ Так же вы можете посмотреть Вопрос № 1988, там правдо не о картинках, но есть многое, что вом будет полезным!
 Удачи!!!
 
|  | Ответ отправил: Ученый (статус: 8-ой класс)Время отправки: 7 ноября 2008, 22:05
 
 |  Ответ #2. Отвечает эксперт: Feniks Здравствуйте, Денис!Данная тема уже много кратно подымалась. Поищите поиском на сайте по ключевым словам. Найдете много примеров. Или же берите пример, который указал Ученый и переделывайте его. Для этого вам сначало надо создать проект DLL. В нем подключаете файл ресурса test.res, как указано в примере. Компилируете и билдите проект. В результате получаете свою DLL со своими ресурсами. В примере есть функции для вытаскивания картинок из ресурса - LoadBitmap или LoadFromResourceName, смотря что вам надо и что вы хотите. У них первым параметром указывается THandle модуля в котором искать эти ресурсы. Если указать Handle или HInstance, то в качестве модуля берется ваша программа, т.е. обращения идут самой к себе. Если вам надо взять ресурсы из DLL, то надо указать Handle  вашей библиотеки. А для этого сначало надо ее открыть:
 
 var
   MyDll : THandle;
   bmp : TBitMap;
begin
   MyDll := LoadLibrary(PChar('имя dll файла'));
   if MyDll <> 0 then 
   begin
      bmp := TBitMap.Create; {Создаем объект TBitMap}
      bmp.LoadFromResourceName(MyDLL, 'имя ресурса картинки');
// теперь в bmp находится наша картинка
   end;
   FreeLibrary(MyDLL);
// не забудьте потом, когда объект bmp не нужен будет, указать bmp.free; иначе будет утечка памяти.
end;P.S. Желаю удачи.
 
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 14 ноября 2008, 10:58
 
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 10 ноября 2008, 20:50; участников в обсуждении: 1. 
|   | Ученый (статус: 8-ой класс), 10 ноября 2008, 20:50 [#1]:Але народ! вы если задали вопрос, так хотябы отпишитесь! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |