1

私は現在、Alpha liteデモを使用して、delphi7アプリケーションにさまざまな外観を与えています。Lookを失うことなくDelphiアプリケーションを移植できるように、Skinファイル(.asz拡張子)を含める方法について疑問があります。.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 に答える