Property в интерфейсах

Обычная мотивация для такого подхода: хочется описать свойство, а функции оставить личным делом реализующего класса.

function GetOnProgress: T_OnProgress; //

property OnProgress: T_OnProgress read GetOnProgress; 

Как оставить в интерфейсе только property?
Ответ: Никак. angel Но, и незачем.

В классе свойство даёт возможность укрыть атрибут класса от прямой правки, сделать доступным только через методы.
Но через интерфейс такого доступа к полям нет в принципе, интерфейс декларирует только методы.

Получается, ничего плохого в доступности методов нет.

type
  IAny = interface
           function GetP: TP;
           property SomeP : TP read GetP;
         end;
...
var
   any : IAny;
   locP: TP;
...
  locP := any.SomeP; // просто один из вариантов записи.
  // locP := any.GetP - ничем не хуже, и доступность функции через интерфейс не должна нас беспокоить.