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. Буду рад услышать конструктивные предложения и критику.
К материалу прилагаются файлы:
Обсуждение материала [ 12-10-2006 03:25 ] 9 сообщений |