Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое изменение TrayIcon.Icon


Человек ©   (2011-08-02 12:54:00) 

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

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

Delphi 2010, Win 7


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

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


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


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


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


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


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

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


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

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


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


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


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


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


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

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

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

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

> Palladin

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


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

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


sniknik   (2011-08-03 14:28:00) [8]

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

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

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


Palladin   (2011-08-03 14:07:00) [9]

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


Palladin   (2011-08-03 14:06:00) [10]


> QAZ   (02.08.11 21:54) [5]

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


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


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

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


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

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


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


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

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


brother   (2011-08-03 12:25:00) [13]

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


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


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

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


brother   (2011-08-03 04:19:00) [15]

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

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


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


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

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


sniknik   (2011-08-02 19:49:00) [17]

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


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


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


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


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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо