Покажите пример добавления произвольному классу поддержки 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