Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.08;
Скачать: CL | DM;

Вниз

Динамическое изменение TrayIcon.Icon   Найти похожие ветки 

 
Человек   (2011-08-02 12:54) [0]

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

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

Delphi 2010, Win 7


 
Человек   (2011-08-02 13:00) [1]

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


 
Сергей М. ©   (2011-08-02 16:56) [2]

http://www.delphimaster.net/view/2-1201335591


 
Человек   (2011-08-02 17:21) [3]


> Сергей М. ©   (02.08.11 16:56) [2]


Для 32-битных иконок это неприменимо.


 
sniknik ©   (2011-08-02 19:49) [4]

почему? какая принципиальная разница?


 
QAZ   (2011-08-02 21:54) [5]


> Человек   (02.08.11 12:54)  

никто и никогда в здравом уме не рисует динамически на иконках для трея
делаются заранее несколько иконок и под нужное состояние загружается соответствующая


 
brother ©   (2011-08-03 04:19) [6]

> рисует динамически на иконках для трея

не уверен, имхо рисуют на битмапе и ассоциируют с его иконкой


 
QAZ   (2011-08-03 12:19) [7]


> имхо рисуют на битмапе и ассоциируют с его иконкой

ну если только очень извращеные\"продвинутые" ;)


 
brother ©   (2011-08-03 12:25) [8]

на вкус и цвет...


 
DiamondShark ©   (2011-08-03 12:48) [9]


> brother ©   (03.08.11 12:25) [8]
> на вкус и цвет...

А это не вопрос вкуса и цвета, это вопрос психического здоровья.


 
Человек   (2011-08-03 13:16) [10]


> sniknik ©   (02.08.11 19:49) [4]
> почему? какая принципиальная разница?

Например, в 32-битных изображениях не используются маски и TransparentColor, т.к. там есть полноценный альфа-канал.


QAZ   (02.08.11 21:54) [5]
> никто и никогда в здравом уме не рисует динамически на иконках
> для треяделаются заранее несколько иконок и под нужное состояние
> загружается соответствующая

У меня может быть 9999 состояний. Не вижу смысла генерировать их заранее, если они могут легко генерироваться в рантайме.


 
Palladin ©   (2011-08-03 14:06) [11]


> QAZ   (02.08.11 21:54) [5]

Не совсем понял, почему никто не рисует? Религия запрещает? В чем проблемы то? Что именно подорвет здоровье ума?


 
Palladin ©   (2011-08-03 14:07) [12]

Регет отлично рисует траффик. Многие программы выводят текст. Это все по-твоему больные люди, как я понимаю...


 
sniknik ©   (2011-08-03 14:28) [13]

> Например, в 32-битных изображениях не используются маски и TransparentColor, т.к. там есть полноценный альфа-канал.
я спрашивал принципиальную разницу...

http://base.vingrad.ru/view/2855-32-bitnyie-ikonki:-zakat-solntsa-vruchnuyu
единица в маске указывает на то, что изображение в данной точке не рисуется, ноль - соответственно рисуется. В 32-разрядном режиме на один пиксель приходится 4 байта, причём один из них - коэфициент прозрачности (0 - абсолютно прозрачно, 255 - абсолютно непрозрачно).

черно белое на 4-х цветное поменять? канал, эта та же маска.


 
sniknik ©   (2011-08-03 14:29) [14]

> 4-х цветное
блин, однобайтное, 256-цветное.


 
QAZ   (2011-08-03 14:48) [15]


> У меня может быть 9999 состояний. Не вижу смысла генерировать
> их заранее, если они могут легко генерироваться в рантайме.

хотелбы посмотреть твои 9999 состояний в квадрате 16х16 точек

> Регет отлично рисует траффик. Многие программы выводят текст

незнай где там график,просто подвижные треугольники
про текст(Многие), хоть одну назови

> Palladin

главное не как можно,а как правильно
и образец для этого, собственно микрософт


 
Человек   (2011-08-03 15:05) [16]


> хотелбы посмотреть твои 9999 состояний в квадрате 16х16
> точек


Две цифры вверху -- две внизу, шрифтом Small Fonts.


 
QAZ   (2011-08-03 15:12) [17]

круто,а главно информативно


 
Человек   (2011-08-03 15:18) [18]


> QAZ   (03.08.11 15:12) [17]
> круто,а главно информативно

Когда мне нужен будет совет, как сделать "круто" и "информативно", я у тебя спрошу. А пока хочется все же узнать у адекватных людей, как корректно решить описанную проблему.


 
Человек   (2011-08-03 15:22) [19]


> sniknik ©   (03.08.11 14:28) [13]
черно белое на 4-х цветное
> поменять? канал, эта та же маска.


Попробую сегодня, отпишусь.


 
QAZ   (2011-08-03 15:24) [20]

а где проблемма?
рисуеш картинку,рисуеш к ней маску прозрачностей
маску суеш в альфу и вуаля



Страницы: 1 вся ветка

Текущий архив: 2013.09.08;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
2-1356350722
ford
2012-12-24 16:05
2013.09.08
indy IdSMTP vs Yandex.ru and Mail.ru


2-1356226571
Den
2012-12-23 05:36
2013.09.08
TEMPLATE. Как при создании события в редакторе кода сделать...


2-1355904973
sqler
2012-12-19 12:16
2013.09.08
выборка


15-1364415191
N.Cage
2013-03-28 00:13
2013.09.08
Рейтинг производителей ноутбуков


15-1364596708
Optimaiser
2013-03-30 02:38
2013.09.08
Windows 7 и файл подкачки