Der IStream-Parameter von FromStream ist als
const
deklariert. Das setzt die Referenzzählung außer Kraft. Eine lokale IStream-Variable schafft hier Abhilfe.
Delphi-Quellcode:
stream := TStreamAdapter.Create(ImageStream);
// TGPImage von Stream erzeugen
Image := TGPImage.FromStream(stream);
Das ist ein Problem das schon wirklich oft aufgetreten ist, aber Embarcadero ignoriert das seit ewig. Bei anderen Managed Types funktioniert es bei interfaces nicht. Das könnte der compiler beheben.....
Und das es machbar ist wird zb mit Strings bewiesen. Es mag ein definiertes Verhalten sein aber das macht es nicht richtig.
Versuche das mal einem Neuling beizubringen....
(Ps: Uwe , ich denke das Problem ist Dir sehr wohl bekannt, ich habe vor Jahren mit Barry Kelly darüber gesprochen, Aussage : "They dont want it")