Delphi 2009: «Класс не найден» при использовании пакета компонентов - PullRequest
5 голосов
/ 24 мая 2011

У меня есть пакет пользовательских компонентов, который компилирует и устанавливает без проблем.Исходные файлы для пакета находятся в моем пути к библиотеке, так же как и расположение результирующих файлов bpl.После установки пакет и компоненты правильно отображаются в списке пакетов Design.Однако они не отображаются в палитре инструментов.

Однако каждый раз, когда я открываю форму, содержащую один из компонентов, я получаю сообщение об ошибке класса не найден, и dfm не открывается.Проект будет хорошо скомпилирован, и я смогу просмотреть все файлы pas, но форма не будет отображаться в конструкторе.

Что я здесь не так делаю?Как заставить компоненты правильно отображаться в конструкторе форм?

Вот мой регистрационный код для компонентов:

  RegisterComponents('QuoteSystem', [
    TFnpLabelNumericEdit,
      TPBxCheckBox,
      TPBxCheckBoxSub,
      TPBxComboBoxSub,
      TPBxListBoxSub,
      TPBxRadioItemSub,
      TFnpNumericEdit,
      TQGlobals,
      TPBItem,
      TPBxCheckListBox,
      TPBxCheckListBox,
      TPBxComboBox,
      TPBxDateEdit,
      TPBxDescList,
      TPBxEdit,
      TpbxInteger,
      TPBxLabel,
      TPBxLabeledEdit,
      TPBxLabelNumericEdit,
      TPBxListBox,
      TPBxMemo,
      TPBxNumericEdit,
      TPBxQuoteElement,
      TPBxRadioGroup,
      TPBxRadioItem,
      TPBxRichEdit,
      TPBxSpinEdit,
      TpbxSummaryGlobals,
      TAlignEdit
]);

Ответы [ 3 ]

1 голос
/ 24 мая 2011

Типичной ошибкой для этого является запись Register либо в разделе интерфейса, либо в разделе реализации в нижнем регистре или в любом другом случае, отличном от правильного.

Неправильно:

procedure register;

implementation

procedure register;

Правильно:

procedure Register;

implementation

procedure Register;
0 голосов
/ 24 мая 2011

Убедитесь, что добавили модуль, содержащий код регистрации, в раздел contains в файле пакета / источнике проекта.

0 голосов
/ 24 мая 2011

Вы должны зарегистрировать свои компоненты следующим образом

RegisterComponents ('Custom', [TMyCustomComp1, TMyCustomComp2]);

, иначе IDE не сможет создавать компоненты в конструкторе форм.

...