Можно ли получить доступ к изображениям в TImageCollection из исполняемого файла или файла ресурсов. то есть вне IDE. Как хранятся эти образы?
Да, список изображений и коллекция изображений хранятся в файлах DFM. Это можно увидеть, если перейти к форме или модулю данных, содержащему список или коллекцию изображений, а затем нажать Alt+F12, чтобы увидеть код DFM. Кроме того, вы можете просто открыть файл DFM в своем любимом текстовом редакторе.
И эти DFM встроены в ваш EXE-файл как ресурсы RCDATA, поэтому вы можете увидеть их, если откроете свой EXE-файл в редакторе ресурсов.
@JohnBarrat: я рад, что вы решили проблему!
Во время выполнения ваш EXE-файл может получить доступ к изображениям через свойство TImageCollection.Images
, которое представляет собой набор объектов TImageCollectionItem
.
TImageCollectionItem
имеет свойство SourceImages
, которое представляет собой набор TImageCollectionSourceItem
объектов.
TImageCollectionSourceItem
имеет свойство Image
типа TWICImage
Это избавило меня от многих хлопот, у меня была коллекция изображений, в которую при добавлении изображений были вставлены 2 пустые записи. Это приводит к сбою редактора коллекции изображений, что делает невозможным добавление изображений. Я смог погрузиться в DFM, найти пустые записи и удалить их, и теперь редактор коллекции изображений работает нормально. Спасибо за указание и нет благодарности Embarcadero за то, что она не обрабатывает черные записи».