Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#45

AW: TAudioVolume Komponente incl. System Mixer

  Alt 9. Mai 2018, 08:39
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; .

Geändert von TiGü ( 9. Mai 2018 um 08:50 Uhr)
  Mit Zitat antworten Zitat