![]() |
Ersatz für Buggy/Deprecated pngdelphi?
Hallo,
ich suche gerade eine PNG-fähige Grafikkomponente, die die pngdelphi ersetzen soll. pngdelphi ist jetzt seit letzter Woche bei Sourceforge offline und es gibt schon lange keine Updates/Bugfixes mehr. Ich habe gerade eine große TPNGObject MemoryLeak Schlacht hinter mir und möchte gerne eine andere Komponente nutzen. Gibt es eine PNG-Komponente, die PNGs in TImageList unterstützt (also ich nur die DFMs von TPNGImageList auf TXyzImageList ändern muß)? Gruß Assertor |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Zitat:
Bei dem Wetter gibt es eh schon genug Frust. Deswegen schieb ich auch mal etwas Frust über die DP - mal eine kurze List von Threads aus 2006 bis 2008 in diesem Forum, wo mir nie jemand überhaupt geantwortet hat (!) - zum großen Teil waren das auch offene Fragen: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Zum Glück hat sich das meiste von selbst erledigt (bis auf diesen hier und den ersten der Liste)... Ich glaube, wäre ich ein anderes - bekannteres - Mitglied, wäre zumindest manchmal eine Höflichkeitsantwort gekommen. Nichts gegen die DP, ich helfe hier gerne und bekomme auch gerne gute Tipps und Anregungen - aber das frustiert. Es ist mir klar, daß nicht jeder hier für alles eine Lösung kennt. Manche Sachen - wie die Hintwindow Geschichte - führen dann zu einem QC, da hiernoch niemanden das aufgefallen war. Oder eben die OpenSSL Geschichte. Gruß Assertor P.S.: Trotzdem: :dp: - und wo bewirbt man sich denn hier als Moderator? ;) |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Zitat:
|
Re: Ersatz für Buggy/Deprecated pngdelphi?
"deprecated" = "veraltet"
|
Re: Ersatz für Buggy/Deprecated pngdelphi?
|
Re: Ersatz für Buggy/Deprecated pngdelphi?
Zitat:
Zitat:
Zitat:
Das Problem dieses Threads bleibt, aber Ihr macht mir durch Eure Antworten wieder etwas Hoffnung :) Gruß Assertor |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Es ist ja nicht das Problem, das wir dir nicht helfen wollen
|
Re: Ersatz für Buggy/Deprecated pngdelphi?
Liste der Anhänge anzeigen (Anzahl: 1)
Ups, du hast recht! sorry.
Bei einer Internetsuche stolpert man allerdings ständig über pngDelphi. Ich habe folgende Dateien gefunden und da erstmal ein Package draus gemacht. Nach der Installation kann ich png-Bilder in die TImage-Komponente laden. Ich habe gerade mal einen Speichertest durchgeführt und das funktioniert wunderbar. Was spricht den gegen diese Komponente? Vieleicht können wir ja deine Speicherleckprobleme lösen? Gruss Thorsten |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Danke für die Antworten!
Zitat:
Zitat:
Ich prüfe das jetzt gleich mal - aber vielleicht hast Du das ja schon getestet. Konkrete Speicherlecks gibt es bei der Thany Erweiterung für PNGdelphi 1.564 (wird ja auch nicht mehr gepflegt). Mein Code:
Delphi-Quellcode:
Die Funktionen MakeImageBlended und ConvertToPNG stammen dabei aus der "pngfunctions.pas" von Thany... Ich versuche noch mal schnell aus dem Projekt ein LeakLog zu erstellen. Dauert aber kurz wegen der Projektgröße...
procedure Txxx.MakeDisabledImage(var AImage: TImage);
var pngimg1: TPNGObject; begin if Assigned(AImage) then begin pngimg1 := TPNGObject.Create; try ConvertToPNG(AImage.Picture.Graphic, pngimg1); // hier... MakeImageBlended(pngimg1); // ...und hier gibt es Lecks AImage.Picture.Assign(pngimg1); finally FreeAndNil(pngimg1); end; end; end; Gruß und Danke Assertor |
Re: Ersatz für Buggy/Deprecated pngdelphi?
In der normalen TImageList geht es leider nicht. Aber in der TImageList32 aus Graphics32 geht es!
Gruss Thorsten |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Hier das kurze Log:
Delphi-Quellcode:
TIdThreadSafe und TIdCriticalSection ist von Indy und klar (by Design).
--------------------------------2008/5/17 20:10:14--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer): 5 - 12 bytes: TIdThreadSafeInteger x 1 13 - 20 bytes: TPNGList x 2 21 - 28 bytes: TIdCriticalSection x 2, TPen x 2, TBrush x 2 29 - 36 bytes: TFont x 2, Unknown x 2 53 - 68 bytes: Unknown x 1 85 - 100 bytes: TCanvas x 2 549 - 612 bytes: TPNGObject x 2 Kommentiere ich die beiden fraglichen Zeilen aus gibt es keine (bzw. nur die gewollten Indy) Leaks. Gruß Assertor Edit: Endlich ein roter Kasten ;) Das prüfe ich gleich mal ab mit Graphics32. |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Ich kenne deine Anwendung ja nicht, aber kann es vielleicht sein, dass das Speicherleck von TPNGObject auch durch die Indys entsteht? Immerhin sind dort auch zwei TIdCriticalSection offen geblieben.
Mit MemProof habe ich keine Probleme. Vielleicht solltest du nochmal einen Test ohne die Indys durchführen. Gruss Thorsten |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Nein, Lecks sind nicht von Indy. Ich verwende die aktuelle FPC/Lazarus Indy Port für die Delphi VCL - alles sehr aktuell. Daher nicht so typisch die Meldungen.
Aber TPNGObjects werden da nicht verwendet ;) Gruß Assertor P.S.: Hab grad Graphics32 gesehen. Da ist auch kein adäquater Ersatz für TPNGImageList. Ich versuche mal das nachzuprüfen... |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Liste der Anhänge anzeigen (Anzahl: 1)
Kannst du nicht einfach mal eine leere Anwendung zum testen benutzen.
Edit: Die TPNGImageList musste ich erstmal finden! ( ![]() Edit2: Anhang enthält mal das Archiv (ohne Setup!) |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Liste der Anhänge anzeigen (Anzahl: 1)
Bei TBX 2.2 Alpha ist eine sehr funktionale ImageListe dabei. Leider ist die Projektseite (
![]() |
Re: Ersatz für Buggy/Deprecated pngdelphi?
So, ich habe jetzt mal alle Komponenten aus #14 ausprobiert und mit FastMM auf Speicherlecks getestet. Da ist alles in Ordnung!
Der Fehler muss in deinem Quellcode liegen. Gruss Thorsten |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Zitat:
An alle anderen: Danke für die Tipps, ich prüfe das nochmal ab. |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Ja habe ich, mein Testfall ist folgender...
Delphi-Quellcode:
Den zeigt mir FastMM auch als einziges an...
procedure TForm.FormCreate(Sender: TObject);
type TMyType = record a:integer; end; TMyPType = ^TMyType; var MyP:TMyPType; begin new(MyP); end;
Code:
Gruss--------------------------------2008/5/17 22:22:17-------------------------------- A memory block has been leaked. The size is: 4 Stack trace of when this block was allocated (return addresses): 402963 [System][@GetMem] 4725AA [Unit1.pas][Unit][TForm.FormCreate] 452CCB [Forms][TCustomForm.DoCreate] 4529AB [Forms][TCustomForm.AfterConstruction] 4037D2 [System][@AfterConstruction] 452981 [Forms][TCustomForm.Create] 7C91FB6C [RtlNtStatusToDosError] 7C91FB71 [RtlNtStatusToDosError] 7C809382 [GetTickCount] 7C84051D [ValidateLocale] The block is currently used for an object of class: Unknown The allocation number is: 744 Current memory dump of 256 bytes starting at pointer address 1022320: [...unwichtig, deshalb gelöscht...] --------------------------------2008/5/17 22:22:17-------------------------------- This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer): 1 - 4 bytes: Unknown x 1 Note: Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting". Thorsten |
Re: Ersatz für Buggy/Deprecated pngdelphi?
Hallo,
danke für die ganze Hilfe. Ich habe jetzt beschlossen, die MemoryLeaks zu ignorieren, da ja PNGdelphi dank Gustavo Daud in Tiburón enthalten sein wird. Somit liegt das Problem dann in der VCL und nicht bei mir ;) Gruß Assertor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz