// hier wird Müll ins TBytes-Feld reingeschrieben
Oder wohl eher "nichts"
// bei readbuffer trit stream lesefehler auf, bei einfachem read kommt kein fehler auf
Ja, das war aber auch richtig, da eben nichts, bzw. nicht genug gelesen werden konnte.
Beim Read
mußt du die Rückgabe (Result) prüfen
und das ReadBuffer prüft es selbst (wirft bei Fehler eine
Exception).
Und wo kommt das fMemoryStream überhaupt her?
Nicht dass da vorher schon was drin liegt und der Pointer ebenfalls sonstwo steht.
Also eventuell auch noch ein
fMemoryStream.Clear;
vor dem
Picture.SaveToStream(fMemoryStream)
.
Warum ist das fMemorystream überhaupt eine globale Variable, wenn es doch "eigentlich" (am Ende ein Clear) nur lokal genutzt wird?