我目前正在使用Alpha lite
演示来为我的delphi 7应用程序提供各种外观。我对如何包含他们的Skin文件(.asz扩展名)有疑问,以便我可以在不丢失Look的情况下移植我的Delphi应用程序。我知道我必须将它包含在.RES文件中。怎么做?
我已经做了一个小函数来加载资源:
Function LoadResourceFromFile() : Boolean;
Var
hFind , hRes : THandle;
Begin
hFind := FindResource(HInstance,'SkinsVista',RT_RCDATA);
If hFind <> 0 Then
Begin
hRes := LoadResource(HInstance,hFind);
If hRes <> 0 Then
Begin
// what to do now ?
End;
End;
End;
有人可以指导我吗?
答案 0 :(得分:8)
尝试使用以下代码。这是我未经测试的,但基于供应商支持的this post
,所以我希望它应该是正确的方法:
procedure TForm1.Button1Click(Sender: TObject);
var
ResStream: TResourceStream;
const
SkinName = 'MySkin';
begin
ResStream := TResourceStream.Create(HInstance, 'SkinsVista', RT_RCDATA);
try
sSkinManager1.InternalSkins.Add;
sSkinManager1.InternalSkins[sSkinManager1.InternalSkins.Count - 1].Name := SkinName;
sSkinManager1.InternalSkins[sSkinManager1.InternalSkins.Count - 1].PackedData.LoadFromStream(ResStream);
sSkinManager1.SkinName := SkinName;
sSkinManager1.Active := True;
finally
ResStream.Free;
end;
end;