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.