Ist doch klar! Weil hier nicht das Icon-Objekt geändert wird, sondern dieses Objekt nur ein anderes Icon lädt.
So würde es gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Icon: TIcon;
begin
try
Icon := TIcon.Create;
Icon.LoadFromFile('e:\telefonbilder\telefonrot.ico');
TestCompo1.Icon := Icon;
finally
FreeAndNil(Icon);
end;
end;