AGB  ·  Datenschutz  ·  Impressum  







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

TImage zeigt keine PNG Bilder an

Ein Thema von PhilmacFLy · begonnen am 18. Okt 2013 · letzter Beitrag vom 19. Okt 2013
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: TImage zeigt keine PNG Bilder an

  Alt 18. Okt 2013, 12:24
Hast du evtl. weitere Komponentensammlungen installiert die PNG-Support mitbringen.
Im gespeicherten Stream der DFM steht am Anfang der Komponentenname der für die PNG-Anzeige zuständig ist.
Wenn nun in der IDE ein anderer PNG-Imageviewer zusätzlich installiert ist schreibt dieser dann seine "Signatur" rein. Damit kann dan die eompilierte Exe dann nichts mehr anfangen weil dort nur der Standard-Viewer sich registriert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TImage zeigt keine PNG Bilder an

  Alt 18. Okt 2013, 15:55
Ich denke daran wirds liegen, weil ich noch eine Komponente für PNGButtons benutze, und außerdem das Projekt mal ein Delphi 2005 Projekt war, wie fix ich das am besten?

Edit: Was mir noch aufgefallen ist: Bilder zur Laufzeit laden geht!
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#3

AW: TImage zeigt keine PNG Bilder an

  Alt 18. Okt 2013, 16:37
Edit: Was mir noch aufgefallen ist: Bilder zur Laufzeit laden geht!
Ja, da nimmt er dann die Komponente, welche aktuell (in der EXE) registriert ist.

Zur DFM wird aber explizit der Klassenname gespeichert, wovon aber der Typ scheinbar nicht einkompiliert wurde.
In der IDE sind aber dennoch alle Klassen registiert, welcher grade als Package dort geladen sind.

Hier mußt du entweder dafür sorgen, daß diese "böse" PNG-Klasse aus den Packages des Projekts ausgeschlossen werden.
(z.B. Package deinstallieren oder Delphi-Referenz durchsuchenUnregisterClass in einem registrierten Package aufrufen, nachdem die "böse" PNG-Klasse registriert wurde)

Oder du definierst dir ein Alias für deine "neue" PNG-Klasse, registierst sie vor dem Laden der DFM und leitest so den Namen der "anderen" Klasse auf die "neue" Klasse um.
Delphi-Referenz durchsuchenRegisterClassAlias (geht nur, wenn die Klassen in den betreffenden Punkten kompatibel sind, ansonsten braucht man z.B. noch einen Wrapper als Zwischenschicht)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Okt 2013 um 16:54 Uhr)
  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
 
#4

AW: TImage zeigt keine PNG Bilder an

  Alt 18. Okt 2013, 16:40
weil ich noch eine Komponente für PNGButtons benutze
Welche denn?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 12:15
weil ich noch eine Komponente für PNGButtons benutze
Welche denn?
TPNGButton:
http://sourceforge.net/projects/pngdelphi2/
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#6

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 12:31
Ein bissl übertrieben diese Komponente?

Die bringt ihr eigenes PNG und ZLIB mit.


[edit]
Nimm diese Komponente, schmeiß die Units pngimage und zlib weg, und fertig.
Wer will, kann pngimage in Vcl.Imaging.pngimage umbenennen und das TPNGObject in TPngImage ersetzen.
Ob dann alles Funktiont, kann ich nicht sagen, aber es kompiliert schonmal problemlos und ohne Warnungen oder Hinweise.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Okt 2013 um 12:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 12:37
Ein bissl übertrieben diese Komponente?

Die bringt ihr eigenes PNG und ZLIB mit.
Wieso übertriben? PNG und ZLIB ist nicht bei allen Delphi-Versionen dabei die von der Komponente unterstützt werden.
Wer Lust und Zeit hat kann diese Komponente ja soweit anpassen das sie bei neueren Delphi-Versionen die mitgelieften PNG und ZLIB-Units verwendet oder einfach selbst im Code eine weiche der Art

Delphi-Quellcode:
type
{$IFDEF DELPH_10_UP}
  TMyPNG = <TPNG_von_Delphi>;
{$ELSE }
  TMyPNG = <TPNG_von_PNGDelphi>;
{$ENDIF}
verwenden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#8

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 12:46
Wieso übertriben?
Nja, ZLib ist schon mindestens seit D7 dabei?
Es scheinen auch die selben Implementierungen zu sein.
Ein IFDEF wird da leider nicht viel bringen, denn da die beiden Units pngimage.pas auch noch gleich heißen und die Komponenten auch, kompiliert Delphi immer die zweite Implementation ein.

Ach ja, in Delphi scheint der alte Name TPNGObject nicht mehr zu registeiren, sondern nur noch den neuen TPngImage, womit diese Klasse am Ende in der IDE unter beiden Namen registriert wurde, aber in der EXE nur noch unter dem neuen Namen.
RegisterClassAlias(TPngImage, 'TPNGObject'); sollte demnach helfen, wenn man die doppelten Units nicht entfernen mag.
Ein Therapeut entspricht 1024 Gigapeut.
  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
 
#9

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 12:48
PNG und ZLIB ist nicht bei allen Delphi-Versionen dabei die von der Komponente unterstützt werden.
Das war genau der Grund, warum ich bei den PngComponents die Mindestversion auf Delphi 2009 gesetzt hatte. Der Source-Code ist zwar theoretisch auch bis Delphi 7 abwärtskompatibel, aber das überprüfe ich nicht mehr.

Abgesehen davon ist die Verwendung der Sourcen von Gustavo Huffenbacher Daud lizenzrechtlich eher fraglich.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#10

AW: TImage zeigt keine PNG Bilder an

  Alt 19. Okt 2013, 13:02
Ein bissl übertrieben diese Komponente?

Die bringt ihr eigenes PNG und ZLIB mit.


[edit]
Nimm diese Komponente, schmeiß die Units pngimage und zlib weg, und fertig.
Wer will, kann pngimage in Vcl.Imaging.pngimage umbenennen und das TPNGObject in TPngImage ersetzen.
Ob dann alles Funktiont, kann ich nicht sagen, aber es kompiliert schonmal problemlos und ohne Warnungen oder Hinweise.
Vielen Dank das hats dann gefixt
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  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 04:12 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