У даній моєї статті, написаної, як і всі інші попередні, спеціально для gamedev.ru і мого скромного співтовариства 'grupa Antalisa', я розгляну спосіб зберігання ресурсів (зображень) в динамічно-підключаються бібліотеках (dll).
2 крок. Нам потрібно створити саму бібліотеку.
Для цього відкриваємо Дельфі. Закриваємо всі що в ній відкрито. Йдемо в меню File / New. Other. вибираємо DLL Wizard.
В отриманий модуль вставляємо інструкцію прілінковкі нашого ресурсного файлу: Виходить такий текст:
library Project2;
uses
SysUtils,
Classes;
Зберігаємо даний модуль в папку з нашим ресурсним файлом під назвою Stars1.dpr (проект створить свій файл ресурсів з такою ж назвою, тому назви проекту і нашого ресурсного файлу повинні відрізнятися.
Компілюємо проект (RUN
З головного модуля видаляємо рядок - у нас ресурси в dll!
Після implementation оголошуємо глобальну змінну DLLInstance: THandle; яка буде зберігати посилання на нашу dll
У процедурі створення форми намагаємося завантажити бібліотеку, якщо нам це не вдається - виходимо.
DLLInstance: = LoadLibrary ( 'Stars1.dll'); // завантаження бібліотеки
if DLLInstance = 0 then // Перевірка завантаження
begin MessageDlg ( 'Not found DLL!', mtError, [mbOK], 0); // Пишемо свою ругательсто ;-)
exit; // Якщо хочемо, прощаємося з користувачем, можна і більше різко: application.Terminate;
end;
У процедурі відтворення форми завантажуємо потрібне нам зображення з бібліотеки:
PNG.LoadFromResourceName (DLLInstance, 'Stars1');