Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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]:

Але народ! вы если задали вопрос, так хотябы отпишитесь!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.02 сек.