uses shellapi
procedure TForm1.Button1Click(Sender: TObject);
var
 icon:TIcon;
begin
 if Opendialog1.Execute then
  begin
   icon:=TIcon.Create;
   icon.Handle:=ExtractIcon(hInstance,PChar(Opendialog1.filename),0);
   DrawIcon(Form1.Canvas.Handle,10,10,icon.Handle);
   icon.Free;
  end;
end;

Megjegyzés:
Egy exe file-ban több ikon is lehet, én csak a default ikont szedtem ki, de ha a 0-t átjavítod 1-re, vagy 2..3.. akkor a többi ikon is láthatóvá vállik (winamp egészen biztos)