Zitat:
Geht's denn beim ersten Aufruf von ExtractIconEx um die Ermittlung der Anzahl von Icons? Dann solltest du keinen Parameter für ein HICON übergeben.
Nein.. Es wird ein Icon für das Menu übergeben.. diese sind unterschiedlich.. hänge gleich mal einen Shot an.
Sorry ja dann dürfte das ausreichen oder?
If ExtractIconEx(AFileName, -1, HICON(nil^), HICON(nil^), 0) <> 0 then
Zitat:
ReportMemoryLeaksOnShutdown meldet nicht freigegebene Icons eben nicht, wie ich selber schon in einem ähnlichen Zusammenhang festgestellt habe.
Ja das war mein Problem habe nicht bedacht das ich so wie du bemerkt hast 2 Icons extrahiere.
Aber! Seltsam ist das schon denn die Icons liegen nur im Format 16x16 vor direkt von einem Icon File nicht aus einer EXE-Datei!
Habe auch im Taskmanager nicht feststellen können das sich der Speicher erhöht der blieb immer konstant.
Also das LDummy hätte eigentlich gar kein Icon ausgeben dürfen.
Weil kein Large Icon in der Icon Datei existiert.
Diese Icons werden addiert + die Icons für die Pfeile.
Danke nochmal für deine Hilfe.
Wenn ein Icon übergeben wird, wird dieses als Overlay auf den Button gezeichnet.
Delphi-Quellcode:
if ImageIconPath <> '' then
begin
FIcon[ButtonCount].ImageIcon := GetHIconFromFile(ImageIconPath, true);
if (FIcon[ButtonCount].ImageIcon <> 0) then
btnMenu[ButtonCount].ImageDrop(HButton, FIcon[ButtonCount], X, Y, W, H);
end;
und später mit
btnMenu[IntI].ImageDropRemove(btnMenu[IntI].Handle);
gelöscht..
gruss