Watch, Follow, &
Connect with Us

Please visit our new home

ID: 26127, PngComponents for Delphi 2009 - Delphi 10.2 Tokyo

by Uwe Raabe Email: Anonymous

An adaption (with small improvements) for Delphi 2009 - Delphi 10.2 Tokyo of the PngComponents created by Martijn Saly.
Download Details
FTP  download also available
CDN Login Required to Download. (You will be redirected to the login page if you click on the Download Link)
To download this, you must have registered:
A free membership

For Delphi, Version 12.0  to 25.0 12308 downloads
Copyright: No significant restrictions

Terms of use: Embarcadero use at your own risk disclaimer

Size: 342,479 bytes
Updated on Sat, 16 Dec 2017 06:27:21 GMT
Originally uploaded on Fri, 10 Oct 2008 09:33:17 GMT
SHA1 Hash: 28BF40ABAB4A63E047D3B738A657971021604E05
MD5 Hash: 7F0467F208A73776071AF42B264F36C8

    Explore the files in this upload

This is an adaption for Delphi 2009 - Delphi 10.2 Tokyo of the PngComponents created by Martijn Saly (, which makes use of the new built-in PngImage support.

The project is currently hosted on Bitbucket:

The original Png units from Gustavo Daud are no longer part of the package (mostly because I'm not sure if I may distribute them). So if you want to use it with an earlier version of Delphi, you have to get hands on the original package first. The sources should be compatible downto Delphi 7.

This version includes the DEP fix.

I also added a fix that properly loads DFMs made with older Delphi versions, which contain PNG images in TImage components. For this to work you have to install the package in the IDE and use PngFunctions somewhere in your project. Don't bother if you already use at least one of PngComponents.

Two notes on problems with loading PNG images:
1) The loading is done inside TPngImage which is part of Delphi and not PngComponents. Any problems with Invalid Graphic Format is most likely caused by TPngImage.
2) The current implementation of TPngImage doesn't call Changed when someting changed (f.i during LoadFromResourceName), so there is no notification to the control. As a workaround, load the image into another TPngImage instance and assign that to the PngImage property of TPngSpeedButton. It is not recommended to mess around with the instance behind the PngImage property.

- Fixed a bug that made the IDE crash when leaving.
- Reworked the InsertPng method so that it does what the name implies.
- Added project files and XE2-support
- Added project files for XE3-support
- Implemented a hack to make the TActionList editor of XE3 work with TPngImageList
- Added project files for XE4-support
- Added IFDEF for compilation with Delphi 2007 and below
- Fixed display error with images > 255 high
- Added project files for XE5
- Added project files for XE6
- added style support for TPngBitBtn (thanks André Püschel)
- Added project files for XE7
- Fixed memory leaks
- Copy-Paste of a disabled TPngSpeedButton tried to draw the png before it was fully loaded
- Fixed uninitialzed local variable Offset in TPngBitBtnStyleHook.DrawButton
- Performance optimized version of GrayscaleRGB by Christian Budde
- Added project files for XE8
- no focus rectangle drawn on TPngBitBtn
- fixed Build-Group for XE8
- added project files for Delphi 10 Seattle
- fixed: ConvertToPNG fails for TIcon on Win64
- fixed: SlicePNG didn't copy alpha channel
- fixed: eliminated warning
- added project files for Delphi 10.1 Berlin
- fixed TPngImageList.Assign (was completely broken)
- added project files for Delphi 10.2 Tokyo
- handling changed behavior of AddImage since 10.1 Berlin
- TPngSpeedButton failed when PngImage set to nil

   Latest Comments  View All Add New

Move mouse over comment to see the full text
Reply  Posted by Emil Zola on Dec 10 2013
re: PngComponents
Reply  Posted by Uwe Raabe on Oct 01 2012
re: PngComponents

Server Response from: ETNACDC03