Ich will natürlich nicht den Original-Code verändern
Ich würde hier aber genau das tun!
Die ganze Klassenarchitektur von
TJumpList ist nicht auf Vererbung ausgelegt. Nahezu alle Methoden der beteiligten Klassen sind nicht virtuell, weswegen du die Implementation in deinen eigenen Klassen fast komplett nachbilden musstest.
Legt doch einfach eine Kopie der
Unit Vcl.JumpList in deinem Projektverzeichnis an und ändere den Code in
GetAsShellLink nach deinen Bedürfnissen.
Da du so ja nicht einfach ein zusätzliches Property
IconIndex in
TJumpListItem einführen kannst, könnte man den Index ja z.B. an den FileName in dem
Icon-Property codieren (z.B. als "MyIconFile#5") und in
GetAsShellLink beides auseinanderdröseln.