У меня есть интерфейс и объект, который его реализует:
- Код: Выделить всё
- type
 ISubscriber = interface
 procedure Notify(AEvent: string);
 end;
 { TSubscriber }
 TSubscriber = class (TSomeClass, ISubscriber)
 public
 procedure Notify(AEvent: string); virtual;
 end;
А еще у меня есть список TStringList, в который добавляются ссылки на эти объекты (причем объекты могут быть разными и не иметь общего предка, но они все наследники от TObject и теоретически реализуют интерфейс ISubscriber. Я даже морально готов получать AV, если интерфейс не реализован в объекте в списке). И я хочу вызывать этот интерфейс из списка:
- Код: Выделить всё
- TSubscriber (FList.Objects[i]).Notify(AEvent); // 1. это работает
 ISubscriber(FList.Objects[i]).Notify(AEvent); // 2. это не работает - "Class or Object types "TObject" and "ISubscriber" are not related"
В этом топике написано, что директива {$OBJECTCHECKS OFF} должна решать проблему, но у меня не решает.
Можно эту проблему решить или придется делать всем объектам общего предка, реализующего интерфейс, и приводить к нему?




 
  
  ), потом убрал директиву
 ), потом убрал директиву