Оба пакета скомпилены и инсталлены. Делаю новый ProjectGroup, в ней новый проект и открываю пакет №1(активный), на форму кидаю ComponentA и ComponentB, в компоненте A.Logger выбираю компонент B.
Сохраняюсь. Компилирую пакет №1. И вот, вылезает Access violation в rtl70.bpl и дельфа уходит в задумчивый ступор.
Подскажите, в чем собака порылась.
З.Ы. Если на свойство Logger не выбрано (nil), тогда никаких глюков не вылезает.
Здравствуйте, vav, Вы писали:
VTB>>Есть два пакета, в них два компонента:
vav>и декларации зачем-то 2.. vav>оставь одну и будет счастье.
Полностью с тобой согласен
Но решение в другом: сделай третий пакет в котором и будет твой интерфейс
Здравствуйте, alive, Вы писали:
A>Здравствуйте, Danchik, Вы писали:
D>>Но решение в другом: сделай третий пакет в котором и будет твой интерфейс
A>А что объявление интерфейса в отдельном юните для пакетов не сработает?
Смотри сюда:
Если ты подключиш этот юнит в свои пакеты то они им и будут владеть. Как правило Delphi не даст тебе этого сделать (в том случае если два пакета подключены одновременно).
Я неуверен что будет работать но можно сделать WeakPackage Unit:
Здравствуйте, Danchik, Вы писали:
D>Смотри сюда: D>Если ты подключиш этот юнит в свои пакеты то они им и будут владеть. Как правило Delphi не даст тебе этого сделать (в том случае если два пакета подключены одновременно).
Просто ни разу не использовал связку пакет+интерфейс вот и спросил.
D>И все таки я думаю что это работать не будет Получится тот же вариант что был у тебя до того.
Не я был инициатором темы
Всем спасибо за участие.
Вынесение декларации в отдельный юнит помогло, просто я подумал, что Дельфа считает интерфейсы с одинаковым ГУИДом одним интерфейсом.
Но вот засада, всплыла другая проблема
Задача прежняя:
Есть компонент с публичным свойством типа интерфейс, есть другой компонент, реализующий этот интерфейс, и вот ... если в дизайнере выбрать второй компонент в свойстве первого, то начинают валиться Access violation, то при компиляции, то во время выполнения, причем закономерности я почему-то не увидел.