Watch, Follow, &
Connect with Us

ID: 26127, PngComponents for Delphi 2009-Seattle

by Uwe Raabe Email: Anonymous

An adaption (with small improvements) for Delphi 2009-Seattle 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 23.0 10011 downloads
Copyright: No significant restrictions

Terms of use: Embarcadero use at your own risk disclaimer

Size: 329,814 bytes
Updated on Mon, 31 Aug 2015 08:34:56 GMT
Originally uploaded on Fri, 10 Oct 2008 09:33:17 GMT
SHA1 Hash: 827A3435977CB51FB34C200C83C049B7866DFC7F
MD5 Hash: 88B3B1CCAA7D95964992CC11EFEE8D02

    Explore the files in this upload

This is an adaption for Delphi 2009-Seattle 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 Seattle

   Latest Comments  View All Add New

Move mouse over comment to see the full text

Could not retrieve comments. Please try again later.

Server Response from: ETNACDC04