Список изображений — компонент ImageList

Компонент ImageList представляет собой набор изображений одинаковых размеров, на которые можно ссылаться по индексам, начинающимся с 0. Во многих рассмотренных ранее компонентах (меню, списках и др.) встречались свойства, представляющие собой ссылки на компонент ImageList. Этот компонент позволяет организовать эффективное и экономное управление множеством пиктограмм и битовых матриц. Он может включать в себя монохромные битовые матрицы, содержащие маски для отображения прозрачности рисуемых изображений.

Изображения в компонент TImageList могут быть загружены в процессе проектирования с помощью редактора списков изображений. Окно редактора, представленное на рис. 9.3, вызывается двойным щелчком на компоненте TImageList или щелчком правой кнопки мыши и выбором команды контекстного меню ImageList Editor.

 

Рис. 9.3
Окно редактора списков изображений
 

В окне редактора списков изображений вы можете добавить в списки изображения, пользуясь кнопкой Add, удалить изображение из списка кнопкой Delete, очистить весь список кнопкой Clear. При добавлении изображения в список открывается обычное окно открытия файлов изображений, в котором вы можете выбрать интересующий вас файл. Только учтите, что размер всех изображений в списке должен быть одинаковым. Как правило, это размер, используемый для пиктограмм в меню, списках, кнопках. При добавлении в список изображений для кнопок надо иметь в виду, что они часто содержат не одно, а два и более изображений (см. раздел 5.2). В этих случаях при попытке добавить изображение задается вопрос: «Bitmap dimensions for... are greater then imagelist dimensions. Separate into ... separate bitmaps?» (Размерность изображения ... больше размерности списка. Разделить на ... отдельных битовых матрицы?). Если вы ответите отрицательно, то все изображения уменьшатся в горизонтальном размере и лягут как одно изображение. Использовать его в дальнейшем будет невозможно. Поэтому на заданный вопрос надо отвечать положительно. Тогда загружаемая битовая матрица автоматически разделится на отдельные изображения и потом вы можете удалить те из них, которые вам не нужны, кнопкой Delete.

Как видно из рис. 9.3, каждое загруженное в список изображение получает индекс. Именно на эти индексы впоследствии вы можете ссылаться в соответствующих свойствах разделов меню, списков, кнопок и т.д., когда вам надо загрузить в них то или иное изображение. Изменить последовательность изображений в списке вы можете просто перетащив изображение мышью на новое место.

В редакторе списков изображений вы можете, выделив то или иное изображение, установить его свойства: Transparent Color и Fill Color. Но это можно делать только в том сеансе работы с редактором списков изображений, в котором загружено данное изображение. Для изображений, загруженных в предыдущих сеансах, изменение этих свойств невозможно.

Свойство Transparent Color определяет цвет, который используется в маске для прозрачного рисования изображения. По умолчанию это цвет левого нижнего пикселя изображения. Для пиктограмм данное свойство устанавливается в clNone, поскольку пиктограммы уже маскированы.

Свойство Fill Color определяет цвет, используемый для заполнения пустого пространства при перемещении и центрировании изображения. Для пиктограмм данное свойство устанавливается в clNone.

Группа радиокнопок Options определяет способ размещения изображения битовой матрицы с размерами, не соответствующими размерам, принятым в списке:


Crop Отображается часть изображения, помещающаяся в размер списка, начиная с левого верхнего угла
Stretch Размеры изображения изменяются, становясь равными размерам списка. При этом возможны искажения
Center Изображение центрируется, а если его размер больше размера списка, то не помещающиеся области отсекаются

Теперь рассмотрим основные свойства TImageList:

Свойство Тип Описание
Height Integer Высота изображений в списке
Width Integer Ширина изображений в списке
AllocBy Integer Определяет количество изображений, на которое увеличивается список для добавления новых изображений
Count Integer Определяет число изображений в списке. Свойство только для чтения
 

Остальные свойства определяют цвета и способы рисования изображения.

Hosted by uCoz



Проект Delphi Space © Выпуск 2009- 2010