Как и в других ответах, наиболее вероятным объяснением является новый тип введения в модуле, используемый в разделе реализации, скрывающий тип с тем же именем, используемым или объявленным в разделе интерфейса.
Однако, в отличие от предыдущих ответов, поскольку проблема возникает только в D2010, а не в D7, я бы заподозрил параметр ExceptionHandler типа TExceptionHandler , поскольку D2010 включает тип с этим именем объявлено в ToolsAPI \ IStreams .
Вы можете указать имя в разделе реализации:
TFrameObject.Create(... ExceptionHandler: MyUnit.TExpectionHandler)
Где "MyUnit" - это имя модуля, содержащего "настоящий" TExceptionHandler, который вы хотите использовать.
Или вы можете создать псевдоним типа в разделе интерфейса и изменить списки параметров, чтобы последовательно использовать псевдоним типа как в интерфейсе, так и в реализации этого модуля:
interface
type
TFrameExceptionHandler = TExceptionHandler;
TFrameObject = class...
...
constructor Create(... ExceptionHandler: TFrameExceptionHandler);
end;
implementation
constructor TFrameObject.Create(... ExceptionHandler: TFrameExceptionHandler);