AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TPNGImage in TGPImage umwandeln

Ein Thema von SiLo0815 · begonnen am 7. Mär 2017 · letzter Beitrag vom 7. Mär 2017
Antwort Antwort
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: TPNGImage in TGPImage umwandeln

  Alt 7. Mär 2017, 22:31
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")
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#2

AW: TPNGImage in TGPImage umwandeln

  Alt 7. Mär 2017, 23:14
Es mag ein definiertes Verhalten sein aber das macht es nicht richtig.
Ich bin auch kein Freund dieser Eigenart, aber ich weiß, daß dieses Feature manchmal benutzt wird, um die Referenzzählung bei Interface-Parametern zu umgehen. Eine Änderung würde da wohl eher verhalten begrüßt werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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-2025 by Thomas Breitkreuz