1

我目前正在使用Alpha lite演示为我的 delphi 7 应用程序提供各种外观。我怀疑如何包含他们的皮肤文件(.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;

有人可以指导我吗?

4

1 回答 1

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;
于 2012-04-16T11:35:22.057 回答