AGB  ·  Datenschutz  ·  Impressum  







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

PNG unterstützung in TImage

Ein Thema von Tonic1024 · begonnen am 22. Nov 2011 · letzter Beitrag vom 24. Nov 2011
Antwort Antwort
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

PNG unterstützung in TImage

  Alt 22. Nov 2011, 08:25
Hi Folks...

Ich war grad etwas überrascht als mir PNGs im Auswahldialog eines TImage (D2009) vorgeschlagen wurden. Ganz Spielkind, wie ich nun mal bin, hab ich direkt ein Testprojekt gestartet und ein teil-transparentes PNG geladen. Boa... geht. Cool...

Aber zur Laufzeit ist es verschwunden. Hab dann zum Testen ein nicht-transparentes PNG geladen. Auch dies ist unsichtbar. Also es wird nicht dargestellt aber reagiert auf Mousedown, Hint, Cursor Einstellungen. Ob man die Eigenschaft Tranzparenz setzt oder nicht spielt dabei keine Rolle.

Könnt ihr das bestätigen? Ist das so gewollt?

[Edit]Ich verwende Vista (unfreiwillig) im classical gray - also nix mit glasframes, aero und co. Könnt ihr mal schauen ob es bei mir vielleicht daran liegt oder ob ihr das Phänomen nachgestellt bekommt?[/Edit]

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?

Geändert von Tonic1024 (22. Nov 2011 um 08:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 08:30
Unter XE seh ich die Grafik auch zur Laufzeit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 08:50
Hast du evtl. auch andere Kompos die selbst PNG-Support nachrüsten (z.B. von LMD)?
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
10.995 Beiträge
 
Delphi 12 Athens
 
#4

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 09:17
Wenn das PNG zur Designtime in ein TImage geladen werden kann, liegt das daran, daß die PNG-Unterstützung in die IDE mit eincompiliert ist. Damit das PNG dann auch zur Laufzeit angezeigt werden kann, muss natürlich dort auch die PNG-Unterstützung dabei sein. Dies erreicht man, indem man PngImage in die uses -Clause schreibt.

EDIT: Dies war schon in älteren Versionen ein beliebter Fehler mit JPG Images...
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.170 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 09:22
Wenn das PNG zur Designtime in ein TImage geladen werden kann, liegt das daran, daß die PNG-Unterstützung in die IDE mit eincompiliert ist.
Es reicht auch wenn ein Packages das nachrüstet

Damit das PNG dann auch zur Laufzeit angezeigt werden kann, muss natürlich dort auch die PNG-Unterstützung dabei sein. Dies erreicht man, indem man PngImage in die uses -Clause schreibt.

EDIT: Dies war schon in älteren Versionen ein beliebter Fehler mit JPG Images...
Normalerweise ergäntz die IDE automatisch die Uses-Anweisung um die benötigte Unit damit das passt.
Jedoch könnt es Probleme geben wenn mehrer PNG-Komponenten installiert sind und damit die IDE verwirren. In der DFM wird als erste Bytes der Name der Klasse mitgespeichert welche für den PNG-Support zuständig ist. Wenn jetzt die IDE "verwirrt" ist so trägt sich z.B. in's DFM z.B. TPNGObject (ehemalige freie PNG-Komponente) ein, aber in die Uses-Anweisung z.B. PNGImage was damit nur eine PNG-Klasse anderen Namens bindet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#6

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 09:51
Also ich erinnere mich nicht mal soetwas installiert zu haben. Aber mein System ist auch schon ein paar Jahre alt. Wir haben direkt zugeschlagen als D2009 raus kam. So alt ist meine Installation dann auch schon. Ist viel installiert worden in der Zeit.

Mein Verzeichnis weisen "source/pngimage/pngimage.pas" von 2006 auf und ein "lib/PNG/pngimage.pas" von 2009. Hab das alte Verzeichnis dann mal entfernt, DCUs gelöscht, Delphi neu gestartet und das Projekt neu erzeugt. Gebracht hat das erstmal nichts.

Ich hatte oben was editiert. Kann es mit meiner Windows-Umgebung zu tun haben?


BTW: Die IDE hat PngImage ordnungsgemäß in die Uses aufgenommen.

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: PNG unterstützung in TImage

  Alt 22. Nov 2011, 09:59
Das Löschen der Quelltextdateien bringt nicht sonderlich viel, da Delphi diese oftmals/meistens nicht direkt benutzt.
Stattdessen wird die vorkompilierte Version (gibt da 1-2 DCUs, mit und ohne Debuginfos) verwendet oder gar die DCU, welcher irgendwo in einer der Laufzeitpackages (BPLs) versteckt ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#8

AW: PNG unterstützung in TImage

  Alt 24. Nov 2011, 09:37
Okay, der Trick ist: Beide Verzeichnisse sind falsch. Die richtige PNGImage.pas liegt in [..]\source\WIN32\vcl\imaging\PNGImage und die DCU sollte in [..]\lib liegen. Die DCU fehlt mir dort aber. Hab sie mir kompiliert und dorthin kopiert. Jetzt klappt es.

Ich danke euch.

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?

Geändert von Tonic1024 (24. Nov 2011 um 09:39 Uhr)
  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 09:02 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