要使用Delphi从另一个文件的资源加载单个图标,您可以按照以下步骤操作:
Vcl.Imaging.pngimage
和Vcl.Imaging.jpeg
。FindResource
和LoadResource
函数从另一个文件中加载资源。LockResource
函数锁定资源,并将其转换为TIcon
对象。以下是一个示例代码:
uses
Windows, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
function LoadIconFromFile(const FileName: string; const IconIndex: Integer): TIcon;
var
hRes: HRSRC;
hGlobal: THandle;
pRes: Pointer;
pStream: TMemoryStream;
begin
Result := nil;
hRes := FindResource(0, PChar(Format('ICON%d', [IconIndex])), RT_ICON);
if hRes = 0 then
Exit;
hGlobal := LoadResource(0, hRes);
if hGlobal = 0 then
Exit;
pRes := LockResource(hGlobal);
if pRes = nil then
Exit;
pStream := TMemoryStream.Create;
try
pStream.WriteBuffer(pRes^, SizeOfResource(0, hRes));
Result := TIcon.Create;
Result.LoadFromStream(pStream);
finally
pStream.Free;
UnlockResource(hGlobal);
FreeResource(hGlobal);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Icon: TIcon;
begin
Icon := LoadIconFromFile('C:\path\to\your\file.exe', 0);
if Assigned(Icon) then
try
Image1.Picture.Icon := Icon;
finally
Icon.Free;
end;
end;
在这个示例中,我们从一个名为file.exe
的文件中加载了一个图标,并将其分配给了一个名为Image1
的图像组件。请注意,您需要根据实际情况修改文件名和图标索引。
希望这个答案能够帮助您解决问题。如果您有其他问题,请随时提问。
云+社区沙龙online [云原生技术实践]
云+社区技术沙龙[第11期]
Techo Day
云+未来峰会
云+社区技术沙龙[第14期]
GAME-TECH
DBTalk
云+社区技术沙龙[第7期]
腾讯云数据库TDSQL训练营
腾讯云GAME-TECH游戏开发者技术沙龙
领取专属 10元无门槛券
手把手带您无忧上云