Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: Png im TImage: Konversion von D2006 auf D2009 schlägt fe

  Alt 9. Nov 2008, 14:02
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
Frederik
  Mit Zitat antworten Zitat