Понедельник, 18.12.2017, 21:33
Приветствую Вас Гость | RSS

DELPHI Report

Каталог статей Delphi Report

Главная » Статьи » - Delphi DLL

DLL c ресурсами
Для компиляции ресурсов, используемых в приложении, таких как курсоры, изображения, иконки в динамически связанную библиотеку DLL , применяется следующая технология:

1) составляется список ресурсов в текстовом файле с расширением " *.RC ",
2) этот файл, с помощью утилиты " brcc32.exe ", компилируется в файл ресурса, с расширением "*. RES ",
3) затем этот файл в среде Delphi компилируется в библиотеку DLL .

Разберем детально этот механизм.

1. Сначала в обычном текстовом редакторе, например в "Блокноте", создадим текстовый файл с расширением " *.RC " , представляющего собой файл описания ресурсов. Файл содержит следующие строки вида:

< имя ресурса > < тип ресурса > < путь к ресурсу > < имя файла >

например,

image1 RCDATA "picture.jpg" 

где строка описания ресурса содержит: имя ресурса - image1 , тип ресурса - RCDATA , с расположением ресурса " picture.jpg " в этом же каталоге, т.к. путь к ресурсу не указывается.

Тип ресурса RCDATA используется для пользовательских ресурсов, для курсоров указывается тип CURSOR , для иконок - ICON , для изображений формата BMP - BITMAP . Например:

new BITMAP "new.bmp" 
finger CURSOR "cursor1.cur" 
tray ICON "icon15.ico" 

В Delphi поддерживаются следующие типы ресурсов

RT_ACCELERATOR - таблица ускорителей 
RT_ANICURSOR - анимированный курсор 
RT_ANIICON - анимированная икона 
RT_DIALOG - диалоговое окно 
RT_FONT - шрифт 
RT_FONTDIR - набор шрифтов 
RT_GROUP_CURSOR - коллекция курсор ов 
RT_GROUP_ICON - коллекция икон ок 
RT_HTML - HTML документ 
RT_MENU - меню 
RT_MESSAGETABLE - таблица сообщений 
RT_STRING - таблица строк 
RT_VERSION - ресурс версия ,

т.е. если вы хотите включить в библиотеку шрифт, то в файле RC указывается тип FONT.

2 . Ресурсы, включенные в файл описания ресурсов "*. RC " , затем нужно скомпилировать в файл ресурсов с расширением RES при помощи родного компилятора ресурсов Delphi - " brcc32.exe " ( Borland Resource CommandLine Compiler 32 bit ) , который находится в каталоге Borland\DelphiX\Bin , где X - версия Delphi . Утилита работает в режиме командной строки. Компиляция файла"example.RC " будет выглядеть следующим образом:

с:\Проекты\brcc32.exe example.RC

После компиляции в каталоге "с:\Проекты\" появится файл example.RES

3. Затем в среде Delphi создаем библиотеку DLL , куда включаем наш файл ресурсов example.RES .

Для создания библиотеки DLL в среде Delphi меню " File " выбираем пункт " New " и пункт подменю " Other.. "

В появившемся окне выбираем тип проекта DLL Wizard , что представляет собой нужную нам библиотеку DLL 

Cоздав проект, указываем компилятору включать наш ресурс в директиве {$R} . В листинге №1 приводится код проекта " Project1 ".

library Project1;
uses
SysUtils, 
Classes;

{$R example.RES}

begin
end.

затем проект компилируем в файл DLL , выбрав в меню " Project " пункт " Build ". Получаем файл DLL с одноименным названием проекта "Project1". Загрузка нашей картинки JPG из библиотеки DLL осуществляется следующим образом. Сначала загружаем DLL в память (1), создаем поток для конкретного ресурса (2), извлекаемого из библиотеки, создаем объект изображения (3), производим загрузку ресурса в поток (4), освобождаем дескрипторы потока и библиотеки (5)

var
h: THandle;
imageStream: TResourceStream;
Image:TImage;
begin
h:= LoadLibrary('Project1.Dll'); (1)
imageStream:=TResourceStream.Create(h,'image1',rt_RCData);(2)
Image.Picture.Graphic:=TJPEGImage.Create; (3) 
Image.Picture.Graphic.LoadFromStream(ResStream); (4)
ResStream.Free;
FreeLibrary(h); (5)
end;

учитывая особенности извлекаемых из DLL ресурсов, создается тот или иной объект, т.е. для растрового изображения типа BMP создается объект TBitmap и т.д.

Владимир Богдановский

Категория: - Delphi DLL | Добавил: delphi (20.02.2009)
Просмотров: 11364 | Рейтинг: 4.2/16
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта
Google
Форма входа
Категории раздела
Общие вопросы [3]Среда Delphi [1]
Создание отчетов. Rave Reports [6]- Delphi DLL [9]
- Работа с реестром [5]Внешний вид программы [9]
Прикладные программы [1]
Здесь будут размещаться программы, файлы и по возможности описание программ прикладного характера
MS Office (MS Word, MS Excel ) [40]
Aвтоматизация отчетов с помощью средств MS Office (Word, Excel)
Построение графиков TChart, TDBChar [10]Matlab [3]
Здесь будут представлены примеры и статьи решения математических задач в среде матричных вычислений Matlab
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2017