Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 德尔福2009年:“德尔福;“未找到类”;使用组件包时_Delphi_Delphi 2009 - Fatal编程技术网

Delphi 德尔福2009年:“德尔福;“未找到类”;使用组件包时

Delphi 德尔福2009年:“德尔福;“未找到类”;使用组件包时,delphi,delphi-2009,Delphi,Delphi 2009,我有一个自定义组件包,可以毫无问题地编译和安装。包的源文件位于我的库路径中,生成的bpl文件的位置也是如此。安装后,软件包和组件将正确显示在“设计软件包”列表中。但是,它们不会显示在工具选项板中 然而,每当我打开一个包含其中一个组件的表单时,我都会得到一个类not found错误,dfm将不会打开。该项目将编译良好,我可以查看所有的pas文件,但形式不会显示在设计器中 我做错了什么?如何使组件在表单设计器中正确显示 这是我的组件注册码: RegisterComponents('QuoteSy

我有一个自定义组件包,可以毫无问题地编译和安装。包的源文件位于我的库路径中,生成的bpl文件的位置也是如此。安装后,软件包和组件将正确显示在“设计软件包”列表中。但是,它们不会显示在工具选项板中

然而,每当我打开一个包含其中一个组件的表单时,我都会得到一个类not found错误,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
]);

您必须像这样注册组件

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

否则IDE将无法在表单设计器中创建组件。

发生这种情况的典型错误是在接口部分或实现部分中以小写或正确的任何其他情况写入
寄存器

错:

procedure register;

implementation

procedure register;
正确:

procedure Register;

implementation

procedure Register;

说服自己已将包含注册代码的单元添加到包文件/项目源中的
包含
部分。

您的搜索路径中是否有dcu文件?它们位于Delphi的库路径中…编译后程序是否正确启动?在独立文本编辑器中查看.dfm文件是否存在任何异常。它启动并运行良好…组件甚至不会显示在工具选项板中。如果组件没有显示在选项板上,则设计时包注册不顺利。它可能与某些配置文件中的不同Delphi版本设置有关。如果一些定义不知道当前使用的版本中的Delphi,那么它们可能会把代码弄得一团糟。我已经正确地大写了。不过还是一个好提示。我曾经花了好几个小时才弄明白。我不太清楚你的意思。我有一个运行时包-qteSys.bpl和一个设计包-qteSysDesign.bpl。注册码包含在设计包中。通常,注册码(即
程序寄存器
)位于单独的单元中。人们很容易忘记将该单元添加到
.DPK
项目源文件的
contains
部分。