2

我想构建一个自定义组件来管理一堆操作并触发几个事件。我将需要管理数据库连接和其他几个设计时组件。(TQuery、TTable 等)我想使用 IDE 接口来设置其中一些对象。

想法:

  1. 当我设计组件时,是否以同样的方式从 DataModule 继承给了我放置这些组件的地方?(我怀疑不是,但是有没有办法让我的 CustomComponent 在设计时表现得像 DataModule,但在使用时却不行?)
  2. 我是否应该让我的自定义组件简单地从 TComponent 继承,但包含一个 TDataModule 对象并将我需要的组件添加到它?
  3. 我应该打包这个概念并手动创建我需要的组件吗?
  4. 你的解决方案因为你比我聪明。
4

2 回答 2

3

我建议您完全忘记尝试在视觉上设计组件。它是一个非可视组件,因此只需从中派生TComponent并让它根据需要创建/管理数据库组件。根本不需要使用 a TDataModule。这应该留给最终用户在他们自己的项目中使用,而不是让组件作者在他们的非可视组件中使用。

于 2012-08-10T21:48:25.543 回答
2

不,原因很简单:Delphi XE 的 IDE 中存在一个错误,导致表单设计器将继承自 TDataModule 的类视为继承自 TForm。这意味着一堆与 TForm 相关的属性将被写入您的 DFM,当它尝试加载数据模块时,最终会在运行时引发异常。

如果不是因为这个错误,那将是一个好主意。

于 2012-08-10T21:09:43.570 回答