Diese Zeilen bedürfen einen Überarbeitung:
Delphi-Quellcode:
procedure TAudioVolume.WMSize(var Message: TWMSize);
var
WinDir: array [0..MAX_PATH] of WideChar;
begin
...
FillChar(WinDir, sizeof(WinDir), 0);
GetWindowsDirectory(WinDir, MAX_PATH);
MasterImg.Picture.Icon := SetSysItemIcon(PWideChar(WinDir + '\System32\SndVol.exe'));
Bei jedem Resize (und das sind bis zum ersten Zeigen des Formulars schon sechs) wird ein Icon erstellt. Das vorige wird aber nie freigegeben -> Speicherleck.
Das Ermitteln des Windows Directory und das Setzen des Icons brauchst du ja nicht bei jedem Resize machen.
Schiebe das und die Erzeugung von MasterImg in
procedure TAudioVolume.SetMasterComponents;
.