saludos.
en el formulario agregas un tbutton y un topendialog.
en el evento onclick del tbutton pones este codigo.
Código Delphi
[-]
var
NumberOfIcons, i,j: Integer;
begin
j:=1;
if opendialog1.Execute then
begin
icono := TIcon.Create;
try
NumberOfIcons := ExtractIcon(Handle, PChar(opendialog1.FileName), UINT(-1));
ShowMessage(Format('%d Icons', [NumberOfIcons]));
for i := 0 to 10 do
begin
j:=j+1;
icono.Handle := ExtractIcon(Handle, PChar(opendialog1.FileName), i);
DrawIcon(Form1.Canvas.Handle, 10, i * 40, icono.Handle);
icono.SaveToFile(ExtractFilePath(Application.ExeName)+inttostr(j)+'.Ico');
end;
finally
icono.Free;
end;
end;
este codigo es solo una prueba.