Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Tokyo und PNG (https://www.delphipraxis.net/193883-tokyo-und-png.html)

Rainer Wolff 19. Sep 2017 14:00

Tokyo und PNG
 
Nachdem ich gerade einige Projekte in Tokyo geöffnet habe, stelle ich fest, daß es teils Probleme mit TImage-Komponenten gibt, die PNG-Grafiken enthalten. Die Grafik fehlt einfach nach dem Öffnen im Designer.

Wer kennt das Problem auch und besser noch, wer kennt eine Lösung, ausser alle Formulare zu öffnen und die Grafiken zu prüfen?

Uwe Raabe 19. Sep 2017 14:12

AW: Tokyo und PNG
 
Wenn du aus einer schon ziemlich alten Version updatest, könnte es daran liegen, daß die relevante Klasse in D2009 von TPNGObject in TPngImage umbenannt wurde.

Du kannst ja mal probeweise die PngComponents installieren (z.B. über GetIt oder von hier oder hier). Die implementieren einen Mechanismus, der dieses Problem löst.

Alternativ kannst du auch das Image in der alten Version als PNG-Datei abspeichern und mit der neuen Version wieder laden. Könnte nur recht aufwändig werden.

Rainer Wolff 20. Sep 2017 09:16

AW: Tokyo und PNG
 
Es sind verschiedene Formulare, die in Berlin noch korrekt angezeigt werden und in Tokyo dann plötzlich nicht mehr. D.h. wenn ich meine Projekte auf Tokyo übernehmen will, kann ich sämtliche Formulare auf TImage-Komponenten durchsuchen und kontrollieren, ob noch alles vorhanden ist. Einfach lästig und fehlerträchtig. :evil:

Redeemer 20. Sep 2017 09:44

AW: Tokyo und PNG
 
Vielleicht solltest du dann auch gleich überlegen, auf Ressourcendateien umzuschwenken.

Uwe Raabe 20. Sep 2017 10:06

AW: Tokyo und PNG
 
Kannst du mal so ein Berlin-DFM hier anhängen?

Bernhard Geyer 20. Sep 2017 11:54

AW: Tokyo und PNG
 
Es müsst reichen den Klassennamen in der dfm-Datei von 54 50 4E 47 4F 62 6A 65 63 74 (TPNGObject) auf 54 50 6E 67 49 6D 61 67 65 (TPNGImage) zu ändern.
Der Delphi-Stream-Mechanismus schreibt zuerst den Klassennamen in die Datei und dann die Daten dieses Formats.

Uwe Raabe 20. Sep 2017 11:55

AW: Tokyo und PNG
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1381705)
Es müsst reichen den Klassennamen in der dfm-Datei von 54 50 4E 47 4F 62 6A 65 63 74 (TPNGObject) auf 54 50 6E 67 49 6D 61 67 65 (TPNGImage) zu ändern.
Der Delphi-Stream-Mechanismus schreibt zuerst den Klassennamen in die Datei und dann die Daten dieses Formats.

Wenn es mit Berlin gespeichert wurde, dann sollte da eigentlich schon TPngImage drinstehen. Ich vermute aber, da steht ganz was anderes drin.

Redeemer 20. Sep 2017 12:07

AW: Tokyo und PNG
 
Wo kommt die DFM denn ursprünglich her?
Normalerweise ist ein Alias definiert:
Delphi-Quellcode:
  TPNGObject = TPngImage deprecated 'Use TPngImage.';

Vielleicht ist der in 10.2 weggefallen, weil Emba dachte, der sei inzwischen nicht mehr nötig?

Rainer Wolff 20. Sep 2017 12:37

AW: Tokyo und PNG
 
Na, das mit dem Header, der da geschrieben wird, hat mir jetzt doch deutlich geholfen,
dann kann ich direkt mit der Kennung suchen, wo das jeweilige Format verbaut ist.

Aber originellerweise: Bei zwei meiner Standard-dfm's steht die alte Kennung TPNGObject drin:

mit XE und mit Tokyo geöffnet: Bild fehlt
mit Berlin geöffnet : Bild vorhanden

:?

Ich sage danke für die Hilfe, damit komm ich dann klar (und mach dann gleich das nächste Problem auf)

Uwe Raabe 20. Sep 2017 13:36

AW: Tokyo und PNG
 
Zitat:

Zitat von Rainer Wolff (Beitrag 1381711)
mit XE und mit Tokyo geöffnet: Bild fehlt
mit Berlin geöffnet : Bild vorhanden

Dann ist in Berlin offenbar eine BPL installiert, die das regelt. Neben den PngComponents gibt es auch noch andere, die das machen. Diese BPL fehlt dann wohl in Tokyo und XE.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz