德尔福 - 更改任务栏图标(Delphi - Change taskbar icon)

2019-10-23 18:45发布

我主要的.exe程序与形式的.dll文件。 从.EXE我可以创建和显示来自.dll文件的形式,但它没有任务栏图标(在左上方的一个小)。 我想从另一个DLL加载此图标。 我如何能做到这一点吗?

Answer 1:

下面是你需要做的事情。 我已经不包含太多的细节,因为你的问题有个小细节,有没有办法,我确切地知道你会如何融入你的程序了这一切。 问题的关键是使其在较高的水平,你需要做什么明确的。

加载包含资源的DLL

为此,使用LoadLibraryLoadLibraryEx 。 如果你需要调用的代码在DLL中使用了前者。 否则,使用后者的传球LOAD_LIBRARY_AS_IMAGE_RESOURCE 。 这两个函数产生模块手柄, HMODULE

从DLL加载图标

HMODULELoadIconLoadImage从资源加载图标。 这将产生一个HICON 。 赋值给该Handle的一个实例的属性TIcon

指定的图标形式

指定您在上一步中所获得的图标对象Icon的形式财产。



Answer 2:

非常感谢你。 我想是这样Form.Icon.Assign(图标);但是它创造AV错误消息。 这里是工作的代码:

procedure TformOptions.FormCreate(Sender: TObject);
var
  lib: THandle;
  icon: TIcon;
begin
  icon := TIcon.Create;
  lib := LoadLibrary('res.dll');
  if lib > 0 then icon.Handle := LoadIcon(lib, 'ICON2');
  if icon.Handle > 0 then Application.Icon.Assign(icon);
  icon.Free;
  FreeLibrary(lib);
end;


文章来源: Delphi - Change taskbar icon
标签: delphi dll icons