Delphi-Quellcode:
procedure TMain.LoadFromResource(const S:String; var Bmp:TGPBitmap);
var Stream:TResourceStream;
adapter: TStreamAdapter;
begin
Stream:=TResourceStream.Create(HInstance,S, RT_RCDATA);
adapter := TStreamAdapter.Create(Stream);
Bmp:=TGPBitmap.Create(adapter, False);
adapter.Free;
Stream.Free;
end;
(PS: Ein try-finally ist beim Erzeugen/Zerstören von Objekten sehr sinnvoll)
Kleine Änderung, da man nicht weiß ob bei der übergebenen
IStream
-Referenz der Referenzzähler erhöht wird (ohne die Klasse
TGPBitmap
zu untersuchen)
Delphi-Quellcode:
procedure TMain.LoadFromResource( const S: String; var Bmp: TGPBitmap );
var
Stream: TResourceStream;
adapter: IStream;
begin
Stream := TResourceStream.Create( HInstance, S, RT_RCDATA );
adapter := TStreamAdapter.Create( Stream, soOwned );
Bmp := TGPBitmap.Create( adapter, False );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)