Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как унаследовать компонент из одного пакета в другом?


Kolan ©   (2008-05-21 13:59:00) 

Здравствуйте,
 Есть пакет (bpl), A. В этом пакете находится такой код:

  TKMultiImageButton = class(TGraphicControl)
 private
   {...}
   { Private declarations }
 protected
   { Protected declarations }
   {...}
 public
   { Public declarations }
   {...}
 published
   { Published declarations }
   {...}
 end;


procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('KSoftWare', [TKMultiImageButton]);
end;


И есть второй пакет, B. В нем есть наследник вышеописанного класса:

 TScreenNavigationButton = class(TKMultiImageButton)
 private
   { Private declarations }
 protected
   { Protected declarations }
 public
   { Public declarations }
 published
   { Published declarations }
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('KTouchScreenControls', [TScreenNavigationButton]);
end;


Пакет Ауже установлен. Если установить пакет B, то при запуске Delphi сообщает, что TKMultiImageButton не может быть зарегичтрирован, так как он уже был зарегистрирован в пакете A. Поместил пакет Aв requires
пакета B, но это не помогло.

Вопросы:
1. Почему так получается?
2. Как исправить?

PS
 Я специально привел procedure Register;, так как, мне кажется, что проблемма в том, что эти процедуры находяться в модулях. Может их надо как-то вынести, но нужно ли и как правильно — незнаю.


Kolan   (2008-05-21 15:18:00) [1]

>
> Не может быть

Благодарю, помогло :-).
Запутался в названиях пакета. Просто название секции совпадало с названием пакета A. А TKMultiImageButtonнаходиться в пакете С, а регистрируется в секции с названием как у пакета A.


Игорь Шевченко   (2008-05-21 14:38:00) [2]


> Поместил пакет A в requires
> пакета B, но это не помогло.


Не может быть


Наверх

Титульная страница Поиск, карта сайта Написать письмо