Спасибо за подсказку. Пока не понял отличия, но еще поизучаю.
Пробую пока вот так
Код:
h, h2: HIcon
ExtractIconEx(PChar(fs), 0, h, h2, 1);
With TIcon.Create do begin
Handle := h;
SaveToFile ('mynewico.ico')
end;
но получается то же самое - иконка некрасивая получается на выходе.
Думаю еще поковыряться с исходниками Picture.Image.Icon - она ведь как-то загружает красивую иконку. Как она определяет нужный индекс!? Но может и это не помочь, т.к. сохранять она тоже не умеет нормально... странно как-то. Столько способов, а ни один не делает это правильно.