Показать сообщение отдельно
  #1  
Старый 02.08.2011, 15:40
Рубик Рубик вне форума
Прохожий
 
Регистрация: 02.08.2011
Сообщения: 7
Репутация: 10
По умолчанию Динамическое изменение TIcon

Здравствуйте. Нужно рисовать индикатор на TIcon динамически и присваивать его значение TrayIcon.Icon.

Проблема в том, что у TIcon отсутствует Canvas, и рисовать на нем нельзя. Фон для TIcon хранится в TImageList.
Я делаю так: получаю ImageList.GetBitmap, затем на этом TBitmap рисую что нужно, делаю ImageList.Insert и затем ImageList.GetIcon, где и получаю иконку. Но при этом почему-то теряется прозрачность (иконка изначально 32-битная).
У ImageList стоит ColorDepth = cd32Bit.

Вопрос в том, как корректно нарисовать на 32-битной иконке (TIcon), получаемой из ImageList что-нибудь, например, прямоугольник.

Delphi 2010, Win 7
Ответить с цитированием