Delphi programming blog
Источник: http://teran.karelia.pro/articles/item_4406.html
 

windows 7 taskbar overlay icons

Опубликовано 15.03.2010 г. 23:31

В продолжении предыдущей истории об отображении состояния и прогресса выполнения задачи на панели задачи в windows 7 средствами delphi реализуем отображение иконок (т.н. overlay icons). для этого добавим на нашу форму предыдущего примера компонент TImageList, для которго установим размеры изображений 24х24 и глубину цвета 32bit. Добавим 4 иконки соответственно для состояний, в том же порядке как они были определены в TTaskState, за исключением состояния NOPROGRESS, его мы пропустим. Таким образом, индексы иконок соответствуют индексам состояний в массиве TaskStates со смещением в 1. расширим описание класса формы TMainForm:

private
    procedure setOverlayIcon(newIndex : integer);
public
property overlayIndex : integer write setOverlayIcon; 

естественно, обработчик события смены состояния в RadioGroupe изменим, добавив нехитрую строку

    self.overlayIndex := stateSelect.ItemIndex; 

Теперь осталось реализовать непосредственно процедуру установки или смены иконки. метод SetOverlayIcon интерфейса ITaskBar3 имеет три параметра, собственно handle приложения, hande иконки (HICON), и указатель на строку описания. Иконку получим из ImageList с помощью метода getIcon.

procedure TMainForm.setOverlayIcon(newIndex: Integer);
var ico : TIcon;
begin
    if not assigned(taskBarList) then exit;

    ico := TIcon.Create;
    imageList.GetIcon(newIndex-1,ico);
    taskBarList.SetOverlayIcon(handle, ico.Handle, pChar(taskStates[newIndex].name));
    ico.Free;
end;

результат на картинке.
 

Метки:  taskbar  |  windows 7  |  overlay icons 

Комментарии

Нет комментариев
- Имя
- e-mail*
- Сайт
вы можете использовать теги [i],[b],[code],[quote]
Дополнительно