AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tokyo und PNG

Ein Thema von Rainer Wolff · begonnen am 19. Sep 2017 · letzter Beitrag vom 20. Sep 2017
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#1

Tokyo und PNG

  Alt 19. Sep 2017, 15:00
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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Tokyo und PNG

  Alt 19. Sep 2017, 15:12
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Tokyo und PNG

  Alt 20. Sep 2017, 10:16
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.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Tokyo und PNG

  Alt 20. Sep 2017, 10:44
Vielleicht solltest du dann auch gleich überlegen, auf Ressourcendateien umzuschwenken.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Tokyo und PNG

  Alt 20. Sep 2017, 11:06
Kannst du mal so ein Berlin-DFM hier anhängen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Tokyo und PNG

  Alt 20. Sep 2017, 12:54
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Tokyo und PNG

  Alt 20. Sep 2017, 12:55
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Tokyo und PNG

  Alt 20. Sep 2017, 13:07
Wo kommt die DFM denn ursprünglich her?
Normalerweise ist ein Alias definiert:
  TPNGObject = TPngImage deprecated 'Use TPngImage.';
Vielleicht ist der in 10.2 weggefallen, weil Emba dachte, der sei inzwischen nicht mehr nötig?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Tokyo und PNG

  Alt 20. Sep 2017, 13:37
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)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Tokyo und PNG

  Alt 20. Sep 2017, 14:36
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:30 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