Ich habs gelöst!
Der Weg führt über ein temporäres TIcon.
Icon aus Imagelist holen und zuweisen:
Delphi-Quellcode:
procedure TForm1.ChangeTrayIcon(a:integer);
var Icon1:ticon;
begin
Icon1 := TIcon.Create; //Icon erstellen
imagelist1.GetIcon(a,Icon1); //Icon aus der Imagelist holen
//hMainIcon := Icon1.Handle; // auch möglich
//NID.hIcon := HMainIcon; // auch möglich
NID.hIcon := Icon1.Handle; //Icon zuweisen
Shell_NotifyIcon(NIM_MODIFY, @NID);
Icon1.Free;
end;
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten
API wie ein Stolperstein wirken.