我目前正在使用Alpha lite
演示为delphi 7应用程序赋予各种外观。我对如何包括其Skin文件(扩展名为.asz)感到怀疑,以便可以在不丢失外观的情况下移植我的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;
有人可以指导我吗?
最佳答案
尝试使用以下代码。我尚未对其进行测试,但是基于供应商支持的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;