Delphi 2010 TSpeedButtons поддерживает похоже, что на самом деле не поддерживает прозрачность PNG должным образом, потому что свойство Glyph использует TBitmap внутренне, а TBitmap предназначено для растровых изображений и не поддерживает должным образом прозрачность PNG, а TSpeedButton.Glyph не может поддерживать прозрачность .. обновление: Но на самом деле проблема заключалась в том, что у меня был какой-то внешний материал (компоненты Developer Express), который рендерил поддержку PNG delphi нефункциональной, с другой стороны, TImage, хотя он все еще TPicture и может поддерживать PNG, также пострадал от этого Deve ошибка loper express.
Здесь уже задавался вопрос о , и в ответе показано, как использовать предварительное смешивание, чтобы прозрачность не превращалась в черные пиксели. Я хочу знать, есть ли другой элемент управления кнопки, который будет использовать PNG с альфа-смешением, загруженный во время разработки, и который не преобразует ресурсы PNG в формат BMP, отбрасывая альфа-канал и вызывая показанную здесь черную рамку.
Короче , этот элемент управления не будет использовать TBitmap и не будет использовать функцию прозрачности цветового ключа, которая есть у TBitmap.
Повторюсь, я не спрашиваю, как решить проблему черного вокруг внешней стороны, все еще используя выход -современная функциональность VCL на основе TBitmap / TSpeedButton, поскольку в ней отсутствуют современные функции прозрачности PNG, я прошу заменить ее чем-то другим, что «просто работает».
В качестве вторичного недостатка преобразование небольшого файла .png в формат Ресурс растрового изображения .DFM по существу тратит пространство и делает содержимое моей формы .DFM слишком большим. Собственное хранилище файлов в формате .png в .dfm должно уменьшить размеры получаемых форм.
Обновление: PngComponents выглядят так, как будто они должны работать, но я получил ошибку Недопустимый графический формат
при попытке загрузите png в кнопку скорости Png. Обратите внимание, что компонент списка изображений Png не имеет таких проблем. Кажется, что cxLibrary (экспресс-пакет для разработчиков) ломает вещи. Как только я удалил все экспресс-материалы для разработчиков, эта проблема исчезла. Поэтому, хотя я выбрал Pngcomponents в качестве ответа, если у вас установлены компоненты devex, используйте вместо них их кнопки, а не pngcomponents.