Доброго времени суток.
Ситуевина такая:
Есть два пакета, в них два компонента:
Пакет №1
ILogger = interface
['{2499D7B5-7836-4BAA-8BAF-6A58F1C89C9A}']
procedure Log( Sender: TObject; ASeverity: integer; AMessage: string );
end;
TComponentA = class(TComponent)
private
FLogger: ILogger;
published
property Logger: ILogger read FLogger write FLogger;
end;
Пакет №2
ILogger = interface
['{2499D7B5-7836-4BAA-8BAF-6A58F1C89C9A}']
procedure Log( Sender: TObject; ASeverity: integer; AMessage: string );
end;
TComponentB = class(TComponent, ILogger)
published
procedure Log( Sender: TObject; ASeverity: integer; AMessage: string );
end;
Оба пакета скомпилены и инсталлены. Делаю новый ProjectGroup, в ней новый проект и открываю пакет №1(активный), на форму кидаю ComponentA и ComponentB, в компоненте A.Logger выбираю компонент B.
Сохраняюсь. Компилирую пакет №1. И вот, вылезает Access violation в rtl70.bpl и дельфа уходит в задумчивый ступор.
Подскажите, в чем собака порылась.
З.Ы. Если на свойство Logger не выбрано (nil), тогда никаких глюков не вылезает.