|
А мне постоянно хочется передвинуть иконки
телеканалов подалье в игол, чтобы не мешались :))) а иногда
floating для них выключить. |
Изменять иконку приложения или окна достаточно просто - для этого
у TApplication и TForm предусмотрено свойство Icon. Смена иконки
может вестись обычным присвоением свойству Icon нового значения:
Form1.Icon := Image1.Picture.Icon;
|
При этом происходит не присвоение указателя (как казалось бы), а
копирование данных посредством вызова Assign, который производится в
методе TForm.SetIcon
Загрузка иконки из ресурса
Загрузка производится типовым вызовом API:
Form1.Icon.Handle := LoadIcon(hInstance, 'имя иконки в ресурсе');
|
Причем имя в ресурсе желательно писать всегда в верхнем регистре
Все сказанное выше пригодно и для приложения, только в этом
случае вместо Form1 выступает Application. Для принудительной
перерисовки кнопки приложения в панеле задач можно применить вызов
InvalidateRect(Application.Handle, nil, True);
|
Пример организации простейшей анимации иконки приложения
procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(IconIndex);
case IconIndex of
1 : Application.Icon.Assign(Image1.Picture.Icon);
2 : Application.Icon.Assign(Image2.Picture.Icon);
else IconIndex := 0;
end;
InvalidateRect(Application.Handle, nil, True);
end;
|
При этом естественно предполагается, что в Image1 и Image2
загружены иконки. |