Конечно, это похоже на ошибку, но у меня есть только пробная версия, поэтому она может быть исправлена.
ITestInterface = interface
['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
procedure Foo1;
procedure Foo2;
end;
TTest = class(TInterfacedObject, ITestInterface)
end;
Вышесказанное не будет компилироваться. но следующее делает!
ITestInterface<t> = interface
['{9445CED8-4DBA-4EDB-9897-60980B438BE4}']
procedure Foo1;
procedure Foo2;
end;
TTest<T> = class(TInterfacedObject, ITestInterface<T>)
end;
Редактировать: Я только что обнаружил, что произойдет сбой, если вы попытаетесь создать экземпляр TTest. Так что немного противоречиво, но не так уж плохо!