Я пытаюсь добавить изображение в колонку на TDbgrid, которая учитывает прозрачность. При рисовании изображения из TImageList на холсте в процедуре DBGridDrawColumnCell мне нужен фон изображения (того же цвета, что и пиксель в левом нижнем углу), чтобы получить прозрачность. Я хочу, чтобы в этой области прозрачности отображался цвет подсветки или цвет без подсветки, особенно когда используются темы, такие как Aero. Я смог выполнить это в старых версиях Windows с цветовыми значениями clHighlight или clWindow в качестве цвета фона. Но с темами Aero он всегда рисует коробку за непрозрачной частью изображения, а не цвет синего цвета градиента, который использует Aero. Как я могу это сделать?Как добавить изображение с прозрачностью в столбец TDbgrid в delphi?
Я считаю, что я должен использовать альфа-канал, но я не уверен, как это сделать из TImageList на холст. Я считаю, что ячейка полностью окрашена цветом выделенного цвета, прежде чем я начну рисовать на холсте в ячейке. Я просто хочу нарисовать непрозрачную часть изображения и оставить фон.
Если Delphi по-прежнему не поддерживает изображения PNG (с возможностями альфа-канала), есть хорошая библиотека [PNGComponents] (http://cc.embarcadero.com/item/26127) – Abelisto
@Abelisto Я пробовал ваш совет и загружал PNGComponents. У этого есть свой собственный lmageList, и я получаю тот же результат без прозрачного фона. Я также обнаружил, что Delphi 2009 + имеет библиотеку PNGImage, которая может быть добавлена в проект при использовании png-изображений. Я не мог заставить его работать с этой библиотекой. Наконец, я смог решить свою проблему. См. Ответ ниже ... –