Ist jetzt kein richtiger/böser Fehler oder so, aber dennoch irgendwie unnötig.
(aus den Funktionen SavePositions und RestorePositions)
Delphi-Quellcode:
SetLength(DesktopIconInfoArray, length(GetDesktopIconInfo())); // 1
try
DesktopIconInfoArray := GetDesktopIconInfo(); // 2
...
finally
SetLength(DesktopIconInfoArray, 0); //3
end;
(1)
- Icons auslesen (GetDesktopIconInfo)
- die Länge des Results (geliefertes Array) auslesen (Length)
- damit ein anderes Array initialisieren (SetLength)
(2)
- Icons
nochmal auslesen (GetDesktopIconInfo)
- alltes Array mit dem Neuen überschreiben (:=)
(3)
- Array freigeben (hätte Delphi auch gleich gemacht ... macht's ja automatisch mit lokalen Variablen, beim Verlassen der Funktionen)
Dieses würde also ausreichen:
Delphi-Quellcode:
DesktopIconInfoArray := GetDesktopIconInfo;
...