Непонятная проблема с интерфейсами.
От: VinniTheBEAR Россия  
Дата: 20.04.05 08:18
Оценка:
Доброго времени суток.

Ситуевина такая:

Есть два пакета, в них два компонента:

Пакет №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), тогда никаких глюков не вылезает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.