Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];

Вниз

Отрисовать средствами Delphi иконку в трее   Найти похожие ветки 

 
Strate   (2009-02-25 12:35) [0]

Здравствуйте мастера. Вопрос заключается примерно в следующем.

Каким образом можно отрисовать произвольный рисунок в трее? То есть не конкретно созданный заранее,а, например, динамически обновляемый? К примеру - график сетевой активности, проценты копирования в TotalCommander"e итп. Для отображения иконки использую стандартный TTrayIcon (D2007 вроде и выше), в нём не нашёл ни TCanvas, ни чего то похожего. Как выкрутиться? Кто как решал эту задачу?


 
DVM ©   (2009-02-25 12:40) [1]


> Как выкрутиться? Кто как решал эту задачу?

Меняй иконку и все. Иконку можно и на лету создавать, но чаще всего используют много заранее заготовленных, если это возможно.


 
Strate   (2009-02-25 12:45) [2]


> Иконку можно и на лету создавать


Вот ) Вопрос в том - как? TIcon не имеет Canvas, как его тогда динамически создать?


 
DVM ©   (2009-02-25 12:55) [3]

function BitmapToIcon(const Bitmap: TBitmap;
Icon: TIcon; MaskColor: TColor): Boolean;
{ Render an icon from a 16x16 bitmap. Return false if error.
MaskColor is a color that will be rendered transparently. Use clNone for
no transparency. }
var
BitmapImageList: TImageList;
begin
BitmapImageList := TImageList.CreateSize(16, 16);
try
  Result := False;
  BitmapImageList.AddMasked(Bitmap, MaskColor);
  BitmapImageList.GetIcon(0, Icon);
  Result := True;
finally
  BitmapImageList.Free;
end;
end;


 
Strate   (2009-02-25 13:20) [4]

Спасибо за код, ещё вопрос появился. Достаточно ли просто вызвать BitmapToIcon(MyBitmap, TTrayIcon.Icon, clNone) чтобы иконка сменилась?


 
Anatoly Podgoretsky ©   (2009-02-25 13:20) [5]

> Strate  (25.02.2009 12:35:00)  [0]

В трее нельзя, но можно в программе, например в буфере.


 
Anatoly Podgoretsky ©   (2009-02-25 13:22) [6]

> Strate  (25.02.2009 13:20:04)  [4]

Не достаточно, и даже более - этто вообще не имеет отношения к трею.


 
Strate   (2009-02-25 13:34) [7]

Я догадываюсь что надо что-то вызвать для обновления иконки. Что именно?


 
DVM ©   (2009-02-25 13:37) [8]


> Что именно?

Зависит от компонента, которым добавляли иконку в область уведомлений. Про стандартный не зна, не пользуюсь. В WinApi надо вызвать Shell_NotifyIcon с флагом NIM_MODIFY


 
Anatoly Podgoretsky ©   (2009-02-25 13:50) [9]

> Strate  (25.02.2009 13:34:07)  [7]

Для работы с иконкой трея есть всего одна функция Shell_NotifyIcon, ее делается все.


 
Strate   (2009-02-25 17:46) [10]

Проблема решилась примерно так: TTrayIcon.Icon := FNewIcon;


 
Strate   (2009-02-25 18:50) [11]

Удалено модератором
Примечание: Повторять не обязательно.



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

Форум: "Начинающим";
Текущий архив: 2009.04.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1234474201
Юрий
2009-02-13 00:30
2009.04.12
С днем рождения ! 13 февраля 2009 пятница


15-1234630411
Маэстро
2009-02-14 19:53
2009.04.12
Ламерский вопрос%)


15-1230545842
KSergey
2008-12-29 13:17
2009.04.12
Про торренты


15-1234673782
Лаврентий
2009-02-15 07:56
2009.04.12
скажите а сайт почему нее пользуется популярностью у рекламодател


15-1234387801
Юрий
2009-02-12 00:30
2009.04.12
С днем рождения ! 12 февраля 2009 четверг





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский