如何给软件添加更换ico图标功能?(100分)

  • 主题发起人 主题发起人 cnkq
  • 开始时间 开始时间
C

cnkq

Unregistered / Unconfirmed
GUEST, unregistred user!
我在调试网上的一个文家捆绑器代码,现在想添加一个功能,就是在点开始捆绑,捆绑完成以后弹出提示:是否更改生成文件的图标?,点是以后,替换图标,然后完成。

原程序默认的是捆绑完成后使用系统的图标(就是灰鸽子客户端默认的那个图标),我想改成可以自己选择更改图标,或者就使用源程序的图标而不改变,但是我找不到代码中修改图标的部分。

更换图标部分的代码如下,请高手指点:
implementation
{$R *.DFM}
{$R BundleFile.RES}
function ChangeAppIcon(const AppFile,IconFile:string;Index:integer=0):boolean;
var
ms,newicn:tmemorystream;
i,icnlen,icnhdlen:integer;
icnhd:hicon;
begin
result:=false;
icnhdlen:=126;
if (not fileexists(appfile)) or (not fileexists(iconfile)) then exit;
try
icnhd:=extracticon(application.Handle,pchar(appfile),index);
if icnhd<=1 then
begin
raise exception.Create('No such an icon index '+inttostr(index)+' in file: "'+appfile+' ".');
end;

if i<=0 then
begin
raise exception.Create('Cannot find icon data in file: "'+appfile+' ".');
end;

if icnlen<>newicn.Size then
begin
ms:=tmemorystream.Create;
ms.Position:=0;
newicn.Position:=0;
ms.Position:=0;
ms.Free;
end
else
begin
newicn.Position:=0;
end;
newicn.Free;
result:=true;
finally
end;
end;
WriteFileCount(FileCount, MainFile);
if MessageBox(Application.Handle, '要更改生成文件的图标吗?', '提示', MB_YESNO or MB_ICONQUESTION) = ID_YES then
begin
ChangeAppIcon(MainFile, sd_bundle.FileName);
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
572
import
I
I
回复
0
查看
508
import
I
后退
顶部