如何将图像从TImageList加载到TTrayIcon?

时间:2012-10-06 02:16:51

标签: lazarus

是否可以在运行时将TImageList中的图像加载到TTrayIcon中?怎么样?这是一个好主意吗?或者是否有更优选的方法在运行时更改托盘图标的图像?

2 个答案:

答案 0 :(得分:1)

使用由半透明png图像组成的图像列表在Lazarus 0.9.30.4的Windows上测试,可以使用临时位图:

var
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    ImageList1.GetBitmap(0, Bmp);
    TrayIcon1.Icon.Assign(Bmp);
    TrayIcon1.Show;
  finally
    Bmp.Free;
  end;

我认为在运行时从图像列表图像中分配图标没有任何问题。另请参阅组件的wiki page示例,了解在运行时分配图标的其他可能实现。

答案 1 :(得分:1)

这是一个班轮:

ImageList1.GetIcon(0, TrayIcon1.Icon);

它将索引图像列表图标复制到托盘图标。