Покажите пример добавления произвольному классу поддержки IInterface: например, для TList или TThread, TListBox

Покажите пример добавления произвольному классу поддержки IInterface: например, для TList или TThread, TListBox. Я всегда делал это через делегирование новому TInterfacedObject, в котором одно из полей - мой класс, но это меня изрядно замотало в клубок. Просто, я смотрю на TInterfacedObject и не могу понять, нужно ли всё оттуда скопировать, чтобы все нормально работало

 
 type 
IList = interface
  procedure Method1;
  procedure Method2;
end;
TMyListBox = class(TListBox,IList)
  
  procedure Method1;
  procedure Method2;
  ??? ну так не работает addref нужен и еще что то

end;

Ответы (1 шт):

Автор решения: Герман Борисов

Если речь конкретно про TListBox и подобные визуальные компоненты, то они все унаследованы от класса TComponent, который уже реализует IInterface также как и TInterfacedObject.

То, что приведено в вопросе уже достаточно.

Если что-то не работает, укажите конкретную версию Delphi

→ Ссылка