Что нового в TImageList
Более подробно об этом компоненте рассказано в статье TImageList в Fire Monkey, а здесь я хочу сосредоточить внимание на непонятностях и нововведениях (Embarcadero® RAD Studio 10.1 Berlin Version 24.0).
1. Остается популярным вопрос: "А почему это у меня картинка всегда 16×16?"
На самом деле это не так. Просто в разделе "Selected Image" всегда отображаются координаты и размеры для масштаба 1, а при добавлении файла с использованием кнопки Add автоматически устанавливается масштаб если размеры изображения кратны 8, или 10 (исходим из наиболее популярных размеров 16, 24, 32, 20). Теперь об этом напоминает всплывающая подсказка:
Кроме того, добавлен дополнительный диалог, который позволяет подтвердить, или отказаться от предлагаемого масштаба. См. видео.
Вообще же масштаб изображения имеет довольно условное значение и важен лишь на этапе редактирования TImageList. В дальнейшем при использовании будет выбираться наиболее подходящая картинка исходя из физических размеров изображений и физических координат на графическом устройстве.
- Размеры не должны превышать 256×256, чтобы ни кто не вздумал добавлять все фотки из фотоаппарата.
- Названия файлов, должны соответствовать одной из масок:
NN.eee
TT.eee
NameNN.eee
Name_NN.eee
Name.eee
This email address is being protected from spambots. You need JavaScript enabled to view it.
где
Name - имя исходного изображения;
eee - расширение файла соответствующее одному из поддерживаемых форматов (png, jpg, bmp);
NN - любое целое число;
TT - любые 1, или два символа (коротенькие названия учитываются как есть).
- У файлов с одинаковым "Name", отношение высоты к ширине должно быть одинаковым, а соотношения размеров должны укладываться в ряд 1; 1,5; 2... Например это 16×16, 24×24, 32×32. Если добавляется несколько изображений с одинаковым "Name" и в списке "Source of Images" еще нет картинки с этим "Name", то масштаб самого маленького изображения будет равен 1.
При добавлении нескольких изображений, ни какие запросы не выдаются, предполагается, что всегда было выбрано "Yes". Файлы которые не удовлетворяют некоторым условиям просто игнорируются. См. видео.
При этом, рекомендуется начинать загрузку с самых маленьких картинок
-
ImageList1.Source.AddOrSet
-
ImageList1.AddOrSet
Метод ImageList1.AddOrSet добавляет элемент не только коллекции Source, но и Destination (если его еще не было) и возвращает номер изображения который может использоваться в качестве значения свойства ImageIndex в различных контролах.
Вот пример использования:
procedure TForm8.Button1Click(Sender: TObject); begin Button1.Images := ImageList1; Button1.ImageIndex := ImageList1.AddOrSet('Add', [1, 1.5, 2], ['D:\Мои веселые картинки\Icons\add16.png', 'D:\Мои веселые картинки\Icons\add24.png', 'D:\Мои веселые картинки\Icons\add32.png']); end;
Спасибо за внимание.


Comments
-
Please login first in order for you to submit comments