在 Delphi 应用程序图标上动态插入数字
Dynamically insert number on Delphi app's icon
我在 Delphi 10.4.
我正在寻找一种在任务栏上的应用程序图标上动态插入数字的方法,以便用户可以了解应用程序到目前为止完成了多少任务。这将是动态的,一旦应用程序执行新任务,它就会增加图标的数量。
类似于下图。
这可能吗?
我这里没有 post 的任何代码,因为我不知道该怎么做。
您可能不知道 TTaskbar
taskbar-configuration component and its OverlayIcon
属性。
示例:
实现非常简单:
procedure TForm1.btnInfoClick(Sender: TObject);
var
io: TIcon;
begin
io := TIcon.Create;
try
io.Handle := LoadIcon(0, IDI_INFORMATION);
Taskbar1.OverlayIcon := io
finally
io.Free;
end;
end;
对于您的情况,您可以非编程方式创建图标 1.png
、2.png
、...并使用它们,或者您可以编程方式创建图标(创建 CreateOverlayIcon(ANumber: Integer): TIcon
功能)。
但是,我应该警告您,TTaskbar
组件曾经(非常)有问题。因此我不会使用那个;相反,我会直接使用 ITaskbarList3::SetOverlayIcon
API。
无论如何,我的建议是将您的问题分成两部分:
- 创建覆盖图标。
- 使用 Windows 7 任务栏覆盖图标功能将这些显示在原始图标之上。
我在 Delphi 10.4.
我正在寻找一种在任务栏上的应用程序图标上动态插入数字的方法,以便用户可以了解应用程序到目前为止完成了多少任务。这将是动态的,一旦应用程序执行新任务,它就会增加图标的数量。
类似于下图。
这可能吗?
我这里没有 post 的任何代码,因为我不知道该怎么做。
您可能不知道 TTaskbar
taskbar-configuration component and its OverlayIcon
属性。
示例:
实现非常简单:
procedure TForm1.btnInfoClick(Sender: TObject);
var
io: TIcon;
begin
io := TIcon.Create;
try
io.Handle := LoadIcon(0, IDI_INFORMATION);
Taskbar1.OverlayIcon := io
finally
io.Free;
end;
end;
对于您的情况,您可以非编程方式创建图标 1.png
、2.png
、...并使用它们,或者您可以编程方式创建图标(创建 CreateOverlayIcon(ANumber: Integer): TIcon
功能)。
但是,我应该警告您,TTaskbar
组件曾经(非常)有问题。因此我不会使用那个;相反,我会直接使用 ITaskbarList3::SetOverlayIcon
API。
无论如何,我的建议是将您的问题分成两部分:
- 创建覆盖图标。
- 使用 Windows 7 任务栏覆盖图标功能将这些显示在原始图标之上。