Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#43

AW: TAudioVolume Komponente incl. System Mixer

  Alt 8. Mai 2018, 17:29
Du kannst aber sehn das man sich auf die DLL und die Ordinal Nummer nicht verlassen kann.
Lad die Ressource doch einfach mit ihrem Namen - in dem Fall 3010 - und gib der Funktion zum Laden der Ressource die passenden Flags mit, so dass das Icon mit den richtigen Dimensionen und Farbtiefe geladen wird.

Grüße
Dalai
Hast du mal hier geschaut?
https://www.delphipraxis.net/1401628-post31.html

Kannst du ein Icon sehen?
Wenn ja dann ist das Problem schon 12 Beiträge vorher erledigt gewesen.

Delphi-Quellcode:
function TAudioVolume.SetSysItemIcon(wsItems: PWideChar): TIcon;
var
  fi: TSHFileInfoW;
begin
  Result := nil;

  ZeroMemory(@fi, SizeOf(TSHFileInfo));
  if SHGetFileInfoW(PWideChar(wsItems), 0, fi, SizeOf(TSHFileInfo),
    SHGFI_DISPLAYNAME Or SHGFI_SYSICONINDEX or SHGFI_LARGEICON or SHGFI_ICON) <> 0 then
  begin
    Icon := TIcon.Create;
    Icon.Handle := fi.HICON;
    Result := Icon;
  end;

end;
Delphi-Quellcode:
var
  WinDir: array [0..MAX_PATH] of WideChar;
//...
    FillChar(WinDir, sizeof(WinDir), 0);
    GetWindowsDirectory(WinDir, MAX_PATH);
    MasterImg.Picture.Icon := SetSysItemIcon(PWideChar(WinDir + '\System32\SndVol.exe'));

Oh.. danke
Zitat:
"Ich nutze aber Windows 7 und will kein Windows 10 und werde es auch nicht unterstützen. Macht doch was ihr wollt! Ich bin raus! LOL!

gruss"
Ich bekomme es schon vorgeschrieben.
Tigü mein Hasi.. Nehme mir bitte nicht so viel Arbeit ab, habe dann ja nichts mehr zu tun

Zitat:
dann kommt man nicht drum herum
Doch in dem man die entsprechende API verwendet.
Es zwingt mich niemand das Icon über die Ordinal Nummer zu laden das geht auch anders.

gruss

Geändert von EWeiss ( 9. Mai 2018 um 05:46 Uhr)
  Mit Zitat antworten Zitat