Версия для печати


Коллекция изображений, загружаемых из ресурсов
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1280

Cepгей Poщин
дата публикации 03-08-2006 07:04

Коллекция изображений, загружаемых из ресурсов

Те, кто в своих программах использует TActionList, TToolbar, TActionManager и пр., наверно, так же как и я, часто формируют коллекцию изображений (глифов), в основном одних и тех же с некоторыми отличиями. Эта однообразная работа побудила меня создать компонент (потомок TDragImageList), который содержит в себе часто используемые глифы. По мере создания я добавил некоторые полезные возможности и переделал редактор.

Коллекция глифов TImageListCep может содержать изображения из ресурсов программы, которые добавляются в программу с помощью директивы компилятора {$R ИмяФайла.res}, и изображения, которые загружаются обычным образом из файла dfm.

Информация о загружаемых ресурсах содержится в коллекции TResourceNames. Для каждого элемента коллекции можно задать следующие свойства

Name:string
— Название ресурса;
Width:Byte
— Ширина одного глифа;
Height:Byte
— Высота одного глифа;
AutoSize:Boolean
— разрешает автоматическую установку размеров глифа. Если AutoSize=true, то из ресурсов с названиями вида RESOURCENAME_XX (где XX размер) выбирается наиболее подходящий, и устанавливаются соответствующие значения Width и Height;
GliphCount:Word
— Количество изображений в ресурсе. Если реальное количество меньше, чем указанное, то недостающие изображения будут сгенерированы;
TransparentColor:TColor
— Цвет, который используется в качестве прозрачного. Если clDefault, то будет использован цвет нижней левой точки.
FileName:String
— Название файла из которого берется ресурс. Если не задано, то из приложения;
FileNameDOM:Boolean
— Указывает используется ли имя файла только в режиме Design-Time. Если FileNameDOM=true, то в режиме Run-Time изображения берутся всегда из приложения, игнорируя FileName.

Модуль ImageListCep включает три ресурса, с названием вида “StandartBtn_XX”. Если в своих программах Вы часто используете другие глифы, то добавьте их в модуль ImageListCep.pas после implementation. Для формирования файла с расширением res можно использовать любой редактор ресурсов (например Restorator), или экспортировать изображение из редактора компонента.

Глифы которые загружаются из файлов bmp и ico в режиме Design-Time, аналогично TImageList хранятся в свойстве CustomImg. Для него так же можно задать размеры. Результирующий набор изображений всегда включает изображения из ResourceNames и CustomImg.

Редактор компонента реализован в модуле FormImageListCep.

Вы можете менять порядок изображений только последней строки таблицы, содержащей CustomImg, остальные строки можно только добавлять, или удалять, используя соответствующие пункты контекстного меню. В таблицу можно бросать изображения из explorer`а, перетаскивать изображения, используя клавиатуру (удерживая ctrl) и колесо мыши (удерживая Shift+Ctrl).

При добавлении пиктограмм используется изображение заданного размера, а не 32х32, как в стандартном редакторе.

Чтобы изменить свойства изображений в одной из строк таблицы выберите соответствующий пункт контекстного меню, щелкнув правой кнопкой мыши на нужной строке.

Измененные свойства коллекции изображений вступают в действие по таймеру, через короткий промежуток времени. По этому чтобы отображать вступившие в силу изменения установите событие TImageListCep.OnChange.

Чтобы установить компонент, последовательно проинсталлируйте пакеты ImageListCepPack.dpk и EditImgListPack.dpk. В папке Packages пакеты для BDS2006, в Packages5 пакеты для Delphi5. Буду рад услышать конструктивные предложения и критику.

К материалу прилагаются файлы: