![]() |
Verständnisproblem mit streams
Delphi-Quellcode:
Das funktioniert
function SetPngPic(Image : TImage; TheStream : TMemoryStream) : boolean;
var _PNGImage : TPNGImage; Stream : TMemoryStream; begin try Result := true; Stream := TMemoryStream.Create; _PNGImage := TPNGImage.Create; try Stream.LoadFromStream(TheStream); _PNGImage.LoadFromStream(Stream); Image.Picture.Assign(_PNGImage); except Result := false; end; finally _PNGImage.Free; Stream.Free; end; end;
Delphi-Quellcode:
das nicht.
function SetPngPic(Image : TImage; TheStream : TMemoryStream) : boolean;
var _PNGImage : TPNGImage; begin try Result := true; _PNGImage := TPNGImage.Create; try _PNGImage.LoadFromStream(TheStream); Image.Picture.Assign(_PNGImage); except Result := false; end; finally _PNGImage.Free; end; end; In TheStream übergebe ich den Stream wenn ich den dann direkt über
Delphi-Quellcode:
;
_PNGImage.LoadFromStream(TheStream);
lesen möchte geht das nicht. Macht für mich keinen Sinn |
AW: Verständnisproblem mit streams
Delphi-Quellcode:
müsste reichen
function SetPngPic(Image : TImage; const TheStream : TMemoryStream) : boolean;
|
AW: Verständnisproblem mit streams
Geht es, wenn Du vor dem LoadFromStream dessen Position zunächst auf 0 setzt? Übrigens würde ich zunächst prüfen, ob die übergebenen Objekte auch wirklich vorhanden (Assigned) sind.
|
AW: Verständnisproblem mit streams
Geht beides, der Fehler muß außerhalb liegen.
Ich würde die Basisklasse TStream übergeben....
Delphi-Quellcode:
function SetPngPic(Image : TImage; TheStream : TStream) : boolean;
var _PNGImage : TPNGImage; Stream : TMemoryStream; begin try Result := true; Stream := TMemoryStream.Create; _PNGImage := TPNGImage.Create; try Stream.LoadFromStream(TheStream); _PNGImage.LoadFromStream(Stream); Image.Picture.Assign(_PNGImage); except Result := false; end; finally _PNGImage.Free; Stream.Free; end; end; function SetPngPic2(Image : TImage; TheStream : TStream) : boolean; var _PNGImage : TPNGImage; begin try Result := true; _PNGImage := TPNGImage.Create; try _PNGImage.LoadFromStream(TheStream); Image.Picture.Assign(_PNGImage); except Result := false; end; finally _PNGImage.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var s:TFileStream; begin s :=TFileStream.Create('C:\Bilder\h2o1.png',fmOpenRead ); try //SetPngPic(Image1,s); SetPngPic2(Image1,s); finally s.Free; end; end; |
AW: Verständnisproblem mit streams
Danke
Denke ich mir, ich lasse das erst mal, funktioniert so.:thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz