我目前正在使用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;

10-08 05:06