![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DinamicTray
focor © (2004-10-24 14:07:00)Как поместить в трей progreesbar?(Как в Процессах у XP)
wal (2004-11-03 16:17:00) [1]> [3] focor (03.11.04 08:20)
> но хотелось бы чтоб данные снимались напямую с прогресса
Это надо свой компонент написать, TCoolTrayProgressBar.
С уважением.
KSergey (2004-11-03 15:39:00) [2]> [5] ++MASTER++ © (03.11.04 13:34)
Чем ваш ответ от [1] отличается?
> [3] focor (03.11.04 08:20)
> но хотелось бы чтоб данные снимались напямую с прогресса
Это как??
++MASTER++ (2004-11-03 13:34:00) [3]Вытяни из системной библиотеке в Windows\System32\, помойму из shell32.dll(если там их нет то поищи сам в той же директории) картинки стандартных иконок для отображения процессов. А лучше скачай Microangello и сохрани все системные иконки в своей папочке, чтобы они были под рукой. Можешь нарисовать свои иконки под тип ProgressBar, кстати тоже в Microangello. Теперь у тебя есть иконки, лучше чтобы их было чётное число, а самое лучшее штук 10. Переименуй их в соответствии с номером значения прогресс бара. Ну а теперь создай функцию, считывай свои данные, масштабируй их в соответствии с нумерацией иконок и загружай в Tray иконку с таким же названием. ВСЁ!!! Кстати, программеры WINDOWS XP делают так же, только грузят иконки напрямую из DLL. Что не понял спрашивай...
Cobalt (2004-11-03 13:09:00) [4]Тогда напиши функцию, которая бы изменяла картинку иконки (в зависимости от параметра прогресса), а затем просто обновляй её в трее.
focor (2004-11-03 08:20:00) [5]Спасибо за помощь,но хотелось бы чтоб данные снимались напямую с прогресса
GuAV (2004-10-24 23:57:00) [6]Profi © (24.10.04 15:08) [1]
Хороший способ.
Если всё же не устраивает, то можно создавать иконку из битмапа с помощью CreateIconIndirect.
Вот так у меня получалось:
Инициализация
tempDC:=GetDC(0);
IconDC:=CreateCompatibleDC(tempDC);
IconBmp:=CreateCompatibleBitmap(tempDC,16,16);
ReleaseDC(0,tempDC);
SelectObject(IconDC,IconBmp);
with IconInfo do
begin
fIcon:=true;
hbmMask:=IconBmp;
hbmColor:=IconBmp;
end;
Icon:=CreateIconIndirect(IconInfo);
изменение
// работа с bmpDC
DestroyIcon(Icon);
Icon:=CreateIconIndirect(IconInfo);
финализация
DestroyIcon(Icon);
DeleteDC(IconDC);
DeleteObject(IconInfo.hbmColor);
Profi (2004-10-24 15:08:00) [7]focor (24.10.04 14:07)
Нарисуй несколько иконок, с разными показателями, и присваевой ту, которая нужна!