0

リソース ファイルからいくつかの gif とビットマップを読み込もうとしています。リソース ハッカーを使用して画像を project.res ファイルに含めていますが、使用しているコードが正しい数の画像を返していないようです。

以下は私がやろうとしていることです

Stream := TResourceStream.Create(HInstance,'EMOTES','BIN');
GetMem(Buffer,40000);
Stream.Read(StreamCount,4);
For I := 0 To StreamCount - 1 Do Begin
  Stream.Read(StreamSize,4);
  Stream.Read(Buffer^,StreamSize);
  ImageStream := TMemoryStream.Create;
  ImageStream.Write(Buffer^,StreamSize);
  ImageStreamList.Add(ImageStream);
  ImageStream.Free;
End;
FreeMem(Buffer);
Stream.Free;
4

1 に答える 1

3

リソースから GIF ファイルを読み込もうとしているようです。次のようにします。

Stream := TResourceStream.Create(HInstance, 'EMOTES', 'BIN');
try
  image.LoadFromStream(Stream);
finally
  Stream.Free;
end;

ここimageで、 はタイプ のインスタンス化されたオブジェクトですTGIFImage

あなたのコードが何をしようとしているのか、私には本当にわかりません。おそらく、複数の画像を持っているでしょう。その場合、画像ごとに 1 つのリソースを作成し、各リソースには異なる名前を付けます。画像ごとに 1 つの .res ファイルという意味ではないことに注意してください。すべての画像を 1 つの .rc ファイルに入れ、各リソースに異なる名前を付けることができます。次に、その .rc ファイルを .res ファイルにコンパイルし、アプリケーションにリンクします。

于 2013-02-09T16:35:19.943 に答える