Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.

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 13695 downloads
Copyright: No significant restrictions

Terms of use: Embarcadero use at your own risk disclaimer

Size: 342,883 bytes
Updated on Mon, 12 Mar 2018 09:28:29 GMT
Originally uploaded on Fri, 10 Oct 2008 09:33:17 GMT
SHA1 Hash: F5B2A75679459484D7D7E97F1F40D3674E69BF62
MD5 Hash: 37EFDA76FE7836785986890C469CE3D0

    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
- fixed: handling changed behavior of AddImage since 10.1 Berlin
- fixed: TPngSpeedButton failed when PngImage set to nil
- added support for overlays
- fixed: TPngBitBtn throws exception when having focus while parent form is closed
- change: Removed TRGPLine and PRGBLine as they are already declared in PngImage. Moved TRGBALine and PRGBALine local to ConvertToPNG as the only place where they are used.
- change: Moved CopyImageFromImageList from PngFunction to PngImageList to avoid cyclic dependency. Adjusted uses clauses in PngBitBtn and PngSpeedButton.

   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