Thema: Delphi Image from Stream laden?

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Image from Stream laden?

  Alt 3. Mär 2013, 00:12
Was heißt „schlägt fehl“? Fehlermeldung? Wenn ja, welche?

Ich hab noch mal ein bisschen gegoogelt und Quellcode von einer Methode namens FieldAsBlob gefunden. Ich weiß nicht, ob es sich um die gleiche Methode handelt, um die es bei dir geht, da du nicht verraten hast, zu welcher Klasse/Bibliothek das gehört. Jedenfalls ist es bei der Implementierung, die ich gefunden habe, offenbar – anders als ich dachte – so, dass da keine neue Instanz erzeugt wird sondern eine bereits angelegte zurückgeliefert wird, die von der Besitzer-Klasse automatisch später freigegeben wird. Also darf Free nicht aufgerufen werden.

Delphi-Quellcode:
        if tb.FieldAsBlob(tb.FieldIndex['picture']) <> nil then
        begin
          // ms := TMemoryStream.Create; NEIN! Speicherleck!
          ms := tb.FieldAsBlob(tb.FieldIndex['picture']);
          ms.Position := 0;
          DetailsMediaImage.Picture.LoadFromStream(ms);
        end
        else
          DetailsMediaImage.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'books.jpg');
  Mit Zitat antworten Zitat