2011-01-27 3 views
2

Я использую Delphi XE.Прозрачное изображение PNG с TImageList

Я добавил TAdvGlowButton в свою форму и добавил TImageList с одним прозрачным PNG-изображением в качестве источника для изображений. Когда я просматриваю форму в режиме дизайна, кнопка выглядит точно, а изображение прозрачно. Однако, когда я запускаю программу, фон изображения становится сплошным черным. Если я неправильно понял, это не ошибка TAdvGlowButton, а TImageList.

Есть ли способ исправить это без использования каких-либо сторонних компонентов?

+1

Устанавливаете ли вы для свойства 'ColorDepth' изображение '' cd32bit'? Я вижу прозрачное изображение для изображения PNG, которое хранится в списке изображений, и отображается как кнопка на панели инструментов. Поэтому я думаю, что «TImageList» может обрабатывать такие изображения. –

+0

Да, ColorDepth установлен на cd32bit, а DrawingStyle - на dsTransparent. –

ответ

6

Я решил это, открыв параметры проекта из диспетчера проектов и проверил приложение -> Включить темы времени выполнения. Какой глупый вариант? Когда кто-нибудь захочет не включить runtime темы?

+0

Поскольку параметр по умолчанию для этой опции должен быть проверен, вы должны задать себе вопрос: «Когда кто-нибудь захочет ** не ** включить темы времени исполнения?» Я думаю, что вы, вероятно, отключите темы времени исполнения, если вы используете другие компоненты, которые не запускались при включении тем. –

+0

Возможно, предыдущие разработчики не отметили это. Я просто делаю первые шаги с этой новой кодовой базой. –

+3

Возможно, это порт из более ранней версии Delphi, где эта опция недоступна. IIRC, по умолчанию при обновлении этих проектов устанавливается этот переключатель на false. –

Смежные вопросы