Hi,
Zitat von
jbg:
Zitat von
Assertor:
TPngObject = type TPngImage;
Das klappt so nicht, denn die "ClassName" Method liefert hierbei immernoch den echten Klassennamen zurück, der steht dann halt nur in einer anderen identischen Kopie der
RTTI für TPngImage.
Wenn du einen anderen Klassennamen willst, dann geht das nur so:
TPngObject = class(TPngImage);
Danke Andreas, die beiden hatte ich gerade verwechselt. Es geht! Und auch danke für Deinen Form Fix
Und für alle, die mal vor dem gleichen Problem stehen: Der Klassenname ist auch Case-Sensitiv, also TPngObject != TPNGObject für die
DFM Daten
Ich hatte zuerst in D2009 nun
0A54506E674F626A656374
statt
0A54504E474F626A656374 raus.
Da hat Delphi natürlich recht
Leider hat CodeGear in der neuen PngImage.pas
Delphi-Quellcode:
type
TPNGObject = TPngImage deprecated 'Use TPngImage.';
gesetzt.
Damit muß man entweder einen Wrapper nutzen, oder alle PNG-Daten in den DFMs manipulieren.
Gruß Assertor
@NamenLozer: Die Idee ist natürlich gut - hatte ich auch schon überlegt. Ich wollte nur dem Problem gerne auf den Grund gehen und auch einen "Live-Fix" haben. An sich müsste es ja auch mehr Delphi Programmierer geben, die in Forms schon früher PNGs hatten